2013-10-21 140 views
14

嗨,我有一個PHP代碼,返回一個數組。我想能夠在我的ajax成功函數中使用這個數組,但我不知道如何去做這件事。我試過以下,但沒有運氣。Ajax - 如何在成功函數中使用返回的數組

PHP代碼:

$arr = array(); 
$arr[0] = "Mark Reed" 
$arr[1] = "34"; 
$arr[2] = "Australia"; 

exit($arr); 

JS代碼:

$.ajax({ 
    type: "POST", 
    url: "/returndetails.php", 
    data: 'id=' + userid, 
    success: function (data) { 
     document.getElementById("name").innerHTML = data[0]; 
     document.getElementById("age").innerHTML = data[1]; 
     document.getElementById("location").innerHTML = data[2]; 
    } 
}); 
+0

嘗試'<?php exit(array());'看看你得到了什麼......你不能用這樣的數組退出...... –

回答

41

您應該JSON從服務器返回的數據。

PHP

$arr = array(); 
$arr[0] = "Mark Reed"; 
$arr[1] = "34"; 
$arr[2] = "Australia"; 

echo json_encode($arr); 
exit(); 

JS

$.ajax({ 
    type: "POST", 
    url: "/returndetails.php", 
    data: 'id=' + userid, 
    dataType: "json", // Set the data type so jQuery can parse it for you 
    success: function (data) { 
     document.getElementById("name").innerHTML = data[0]; 
     document.getElementById("age").innerHTML = data[1]; 
     document.getElementById("location").innerHTML = data[2]; 
    } 
}); 
+0

我做了同樣的事情你的方式,但事實證明我的數據[x]實際上是未定義的。我可以在PHP中回顯它,沒有問題... –

+0

有沒有辦法解析數組中的數組? – Jdoonan

8

一個小錯誤:

不:exit($arr);

替換爲:echo json_encode($arr);

3

有一個問題,當你想顯示例如data[0]和,它看起來像一個字符串。它解決了在應用之前添加header("Content-Type: application/json");echo json_encode($arr)

相關問題