2013-05-22 76 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_*功能,轉而使用的mysqliPDO

+0

除非他想發表文章,只要看看http://api.jquery.com/jQuery.post/並搜索json即可。很好的例子 – MKroeders