Ajax - 如何在成功函数中使用返回的数组

时间:2013-10-21 20:02:40

标签: javascript php jquery ajax arrays

您好我有一个返回数组的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];
    }
});

4 个答案:

答案 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);