2013-05-22 2 views
0

서버에서 내 ajax 요청으로 전송 된 데이터를 읽으려고합니다. 배열을 에코 백하고 각 값을 읽고 페이지의 원하는 위치에 배치하려고합니다. 내가 보낸 JSON으로 작업하는 방법을 모르겠습니다. 보았던 예제는 단지 배열처럼 참조해야한다고 말한 것 같았지만 작동하지 않습니다.PHP에서 반환 데이터 읽기 json_encode

//AJAX Request 
$.post("getData.php", {trackingNum: trackNum}, 
function(result) { 
    alert(result); 
    usrID(result[0]); 
    setTracking(result[1]); 
    carType(result[2]); 
    status(result[3]); 
}); 

//PHP 
while($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    $array[0] = $row[0]; 
    $array[1] = $row[1]; 
    $array[2] = $row[2]; 
    $array[3] = $row[3]; 
} 
echo json_encode($array); 

는 내가 다시 경고에서 얻고 것은 다음과 같습니다 는 [ "2", "D78A19C", "샌딩" "닛산은"]하지만 배열과 같이 참조 할 것 . 도움?

+0

json_encode가 문자열을 JSON으로 인코딩하려고합니다 ... 인코딩하기 전에 데이터가 실제로 어떻게 보이나요? – brbcoding

+0

문자열 배열뿐만 아니라 적절한 키를 사용해야합니다. – moonwave99

+0

배열에서 의미있는 키워드를 사용하는 것이 좋습니다. 예를 들어 :'$ array [ 'username'] = $ row [..]'그리고 나서 js 코드에서'result.username' (object)처럼 사용할 수 있습니다. 'result [0]'보다 의미 상으로 정확합니다. –

답변

1

반환 데이터가 JSON 유형임을 지정해야합니다.

사용 $.getJSON 대신 $.post하거나

$.ajax({ 
    type: 'post', 
    url: "getData.php", 
    data: {trackingNum: trackNum}, 
    dataType: 'json', 
    success: function(result) { 
     alert(result); 
     usrID(result[0]); 
     setTracking(result[1]); 
     carType(result[2]); 
     status(result[3]); 
    } 
}); 

를 사용 mysql_* 기능을 제거하고 대신 mysqli 또는 PDO를 사용하세요.

+0

게시물을 만들고 싶지 않다면 http://api.jquery.com/jQuery.post/를보고 json을 검색하십시오. 좋은 예 – MKroeders

관련 문제