2011-10-05 5 views
0

편집 : echo '{"results":'.json_encode($arr).'}'; 을하고이이 라인 교체와 함께 echo json_encode($arr);JQuery와 함께 사용되는 PHP를 사용하여 JSON 피드를 생성

로 교체 :

var items = []; 
     $.each(data, function(key, val) { 
      $.each(val, function(key, val) 
      { 
        //Test insert into box using customer number 
       $("#chatbox").html(val.number); 
      }); 
     }); 

제거의 아래 제안을 사용하여 해결 와 함께

$.each(data, function(key, val) { 
$("#chatbox").html(this.number); 
}); 

이제 this과 내가 원하는 속성을 사용하여 객체 데이터에 액세스 할 수 있습니다.

최종 편집

안녕하세요 사람이 JSON 피드를 도와 줄 수 있습니다. 나는 거의 그곳에있다. (나는 생각한다.) 그러나이 피드를 JQuery에 넣을 때마다 JSON 객체의 배열이 아닌 문자열로 우리를 선택했는데 이유를 알 수 없다.

피드를 생성하는 PHP :

{"results":[{"id":"40","number":"466741","message":"dsfdsv","date":"2011-10-05","time":"00:28:32"},{"id":"41","number":"466741","message":"sacsac","date":"2011-10-05","time":"00:30:17"}]} 

내가 대신 원하는 것은 :

[{"id":"40","number":"466741","message":"dsfdsv","date":"2011-10-05","time":"00:28:32"},{"id":"41","number":"466741","message":"sacsac","date":"2011-10-05","time":"00:30:17"}] 
<?php 
session_start(); 

include 'connect.php'; 

    $number = $_SESSION['number']; 

    $query = "SELECT * FROM $tableName WHERE number='$number'"; 

    $result = mysql_query($query, $sqlCon); 

    $arr = array(); 
    while($obj = mysql_fetch_object($result)) { 
     $arr[] = $obj; 
    } 

    if (count($arr) == 0) 
    { 
     echo "Your reference number is: $number"; 
    } else { 
     echo '{"results":'.json_encode($arr).'}'; 
    } 
?> 

는 JSON은 다음과 같습니다 반환

또는 개체를 반복 할 수있는 반환 값. 나는 내 문제를 추측하고있어

$.getJSON('get.php', function(data) { 

var items = []; 
    $.each(data, function(key, val) { 
     $.each(val, function(key, val) 
     { 
       //Test insert into box using customer number 
      $("#chatbox").html(val.number); 
     }); 
    }); 
}); 

있는 내가 JSON 피드를 만드는거야 방법입니다하지만 난 밖으로 바로 붙어 및 캔트 그림 :

JQuery와 나는 그것을 읽고 있어요 그것을 고치는 법.

감사합니다. 감사드립니다.

+1

으로 바뀌지 않는 것은 'echo'{ "results": '.json_encode ($ arr).'} '; json_encode ($ arr); ' –

+0

편집 : ok 스크랩 : 실제로 작동합니까? 예를 들어 숫자 값을 어떻게 끌어낼 수 있습니까? – nhunston

답변

2

json 콘텐츠가되도록 PHP에서 헤더를 설정해야합니다. 이것은 100 % 필요하지는 않지만 좋은 습관입니다. 방화범 같은 도구에서 올바르게 파싱 된 내용 유형을 볼 수 있습니다.

header('Content-type: application/json'); 

당신은 당신의 자바 스크립트를 찾고되지 않습니다 당신이 그 부분을 제거하거나 당신의 자바 스크립트를 볼 필요하거나 있도록하는 결과 키와 JSON 컨텐츠를 포장하고 있습니다. 배열을 원하지만 결과 키/값이있는 객체가 echo json_encode($arr);

+0

그래, 내가 루프를 넘길 수 있도록 배열을 원한다. (나는 JS에 익숙하다. = P라고 말할 수있다.) 그리고 각 JSON 객체의 숫자 값을 추출한다. – nhunston

+0

오, 이런, 말하기 쉽습니다. 속성 ..... – nhunston

+0

'application/json'은 최신 브라우저에서만 지원됩니다.오래된 브라우저는 해당 콘텐츠 유형으로 나쁜 일을 할 수 있습니다. –