您好我有一个返回数组的PHP代码。我希望能够在我的ajax成功函数中使用这个数组,但我不知道如何去做这个。我试过以下,但没有运气。
php代码:
$arr = array();
$arr[0] = "Mark Reed"
$arr[1] = "34";
$arr[2] = "Australia";
exit($arr);
js code:
$.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 :(得分:46)
您应该将数据作为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];
}
});
答案 1 :(得分:9)
一个小错误:
不是:exit($arr);
替换为:echo json_encode($arr);
答案 2 :(得分:4)
出现问题,当您想要显示例如data[0]
和data[1]
时,它似乎是字符串中的字符。它解决了在应用header("Content-Type: application/json");
echo json_encode($arr)
的问题
答案 3 :(得分:0)
这是解决方法
$arr = array();
$arr[0] = "Mark Reed"
$arr[1] = "34";
$arr[2] = "Australia";
header("Content-Type: application/json");
echo json_encode($arr);
exit();
代替
$arr = array();
$arr[0] = "Mark Reed"
$arr[1] = "34";
$arr[2] = "Australia";
exit($arr);