我正在尝试检索由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来完成此操作。有任何想法吗??非常感谢。
答案 0 :(得分:3)
将数组从服务器传输到客户端的最简单方法是使用JSON。以下内容可用于在JSON中回显数组:
echo(json_encode($array));
有关详细信息,请参阅here。
然后在客户端,您可以使用以下函数解码JSON以生成相同的数组:
decodedjson = JSON.parse(ajax.response);
不要忘记将客户端代码包装在ajax调用中。
希望这有帮助!
答案 1 :(得分: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>';
}
=== UPDATE ===
如果您必须支持非常旧的浏览器(例如,比IE7更少或更少),您应该使用Crockfords JSON2parser或jQuery(具有更多功能的大型lib)等库。