1

我正在尝试检索由 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 来完成这个。有任何想法吗??非常感谢。

4

2 回答 2

3

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

echo(json_encode($array));

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

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

decodedjson = JSON.parse(ajax.response);

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

希望这可以帮助!

于 2012-07-06T07:07:43.240 回答
2

您必须先解析 json 字符串,例如使用JSON.parse。尝试(未经测试):

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 JSON2parserjQuery之类的库(具有更多功能的巨大库)。

于 2012-07-06T07:04:34.357 回答