从ajax中检索php数组


Retrieve php array from ajax

我正在尝试检索php创建的数组,并通过ajax将其发送回我的JS脚本。

我不知道如何显示该值。

服务器端php

 $r=array();
 $r[] = 'aaa';
 $r[] = 'bbb';
 $r[] = 'ccc';

echo json_encode($r);

我的JS

....ajax codes....
var p=document.getElementById('text');
if (xmlhttp.readyState==4 && xmlhttp.status==200){
    var r=xmlhttp.responseText;
   for (var i=0; i<r.length; i++){
        p.innerHTML= r[i] + '<br>';
   }

}

输出将是

a
a
a
b
b
b
c
c
c
//but I want these
aaa
bbb
bbb

我想使用javascript而不是$.ajax来完成这项工作。有什么想法吗??非常感谢。

将数组从服务器传输到客户端的最简单方法是使用JSON。以下内容可用于在JSON中回显数组:

echo(json_encode($array));

请参阅此处了解更多信息。

然后在客户端,您可以使用以下函数对JSON进行解码,以生成相同的数组:

decodedjson = JSON.parse(ajax.response);

不要忘记将客户端代码封装在ajax调用中。

希望这能有所帮助!

您之前必须解析json字符串,例如使用json.parse.Ttry(未测试):

if (xmlhttp.readyState==4 && xmlhttp.status==200){
    var r=JSON.parse(xmlhttp.responseText);
    for (var i=0; i<r.length; i++){
        p.innerHTML= r[i] + '<br>';
    }

===更新===

如果你必须支持非常旧的浏览器(例如小于或等于IE7),你应该使用像Crockfords JSON2parser或jQuery这样的库(一个具有更多功能的巨大库)。