使用JavaScript数组推送php json数组
我想使用jQueryAjax将从Php页面获得的数组推送到javascript数组中。我试过下面的代码 它的输出像使用JavaScript数组推送php json数组,php,jquery,arrays,json,Php,Jquery,Arrays,Json,我想使用jQueryAjax将从Php页面获得的数组推送到javascript数组中。我试过下面的代码 它的输出像 {"id":12,"name":"some-one"},{"id":1,"name":"john"}{"id":2,"name":"willy"}{"id":3,"name":"keith"} 我想要的是,数组的结构应该是这样的 {"id":12,"name":"some-one"},{"id":1,"name":"john"},{"id":2,"name":"willy"},{
{"id":12,"name":"some-one"},{"id":1,"name":"john"}{"id":2,"name":"willy"}{"id":3,"name":"keith"}
我想要的是,数组的结构应该是这样的
{"id":12,"name":"some-one"},{"id":1,"name":"john"},{"id":2,"name":"willy"},{"id":3,"name":"keith"}
我已经把代码写在下面了,请帮我找其他人
index.php
var arrs =[];
arrs.push(JSON.stringify({'id':12,'name':'some-one'}));
$.ajax({
type:'POST',
url:'my_arr_call.php',
success:function(data){
arrs.push(data);
alert(arrs);
}
});
my_arr_call.php
<?php
$my_arr = array(
array('id'=>1,'name'=>'john'),
array('id'=>2,'name'=>'willy'),
array('id'=>3,'name'=>'keith')
);
foreach($my_arr as $v){
$my_arrs = $v;
print json_encode($my_arrs);
}
?>
问题在于,当您在数组中循环并逐个打印每个元素时。您可以只打印/回显整个数组(永远不要忘记json_编码)来保留结构
<?php
$my_arr = array(
array('id'=>1,'name'=>'john'),
array('id'=>2,'name'=>'willy'),
array('id'=>3,'name'=>'keith')
);
echo json_encode($my_arr);
?>
下面的代码工作得很好,正如我所期望的
var arrs =[];
arrs.push({'id':12,'name':'some-one'});
var str_ar1 = JSON.stringify(arrs);
$.ajax({
type:'POST',
url:'my_arr_call.php',
success:function(data){
var all_arrs = JSON.stringify(JSON.parse(str_ar1).concat(JSON.parse(data)));
alert(all_arrs);
}
});
如我所料,它输出正确
[{"id":12,"name":"some-one"},{"id":1,"name":"john"},{"id":2,"name":"willy"},{"id":3,"name":"keith"}]
谢谢。尝试arrs.concat(数据)
而不是arrs.push(数据)
而不仅仅是“你可以”。。每个请求“必须”只回显一个数组
[{"id":12,"name":"some-one"},{"id":1,"name":"john"},{"id":2,"name":"willy"},{"id":3,"name":"keith"}]