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

Posted

技术标签:

【中文标题】Ajax - 如何在成功函数中使用返回的数组【英文标题】:Ajax - How to use a returned array in a success function 【发布时间】:2013-10-30 11:35:26 【问题描述】:

您好,我有一个返回数组的 php 代码。我希望能够在我的 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];
    
);

【问题讨论】:

试试<?php exit(array()); 看看你得到了什么......你不能用这样的数组退出...... 【参考方案1】:

您应该以 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];
    
);

【讨论】:

我按照你的方式做了同样的事情,但事实证明我的 data[x] 实际上是未定义的。我可以毫无问题地在 PHP 中回显它... 有没有办法解析数组中的数组?【参考方案2】:

一个小错误:

不是:exit($arr);

替换为:echo json_encode($arr);

【讨论】:

【参考方案3】:

有一个问题,当您想显示例如data[0]data[1] 时,它似乎是字符串中的一个字符。它解决了在应用echo json_encode($arr)之前添加header("Content-Type: application/json");

【讨论】:

【参考方案4】:

解决办法

$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);

【讨论】:

以上是关于Ajax - 如何在成功函数中使用返回的数组的主要内容,如果未能解决你的问题,请参考以下文章

如何从ajax成功函数返回数据?

Wordpress 如何使用 Ajax 显示从成功的 insert_post() 返回的新数据?

从arraylist返回值到ajax成功函数

ajax成功函数中的codeigniter访问数据数组

在 AJAX 成功的函数中使用时数组内容不会改变

如何将Ext.Ajax.request请求 返回的值赋值给全局变量