【问题标题】:Pushing php json arrays with JavaScript arrays使用 JavaScript 数组推送 php json 数组
【发布时间】:2017-11-21 03:59:12
【问题描述】:

我想使用 jquery ajax 将我从 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":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);
}



?>

【问题讨论】:

  • 试试arrs.concat(data)而不是arrs.push(data)

标签: php jquery arrays json


【解决方案1】:

问题是当你遍历数组并一个一个地打印每个元素时。您可以只打印/回显整个数组(永远不要忘记 json_encode)来保留结构。

<?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'});
$.ajax({
    type:'POST',
    url:'my_arr_call.php',
    success:function(data){
        arrs = arrs.concat(data);
        alert(arrs);
    }
});

【讨论】:

  • 不仅仅是“你可以” ..你“必须”每个请求只回显一个数组
【解决方案2】:

以下代码按我的预期完美运行。

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"}]

谢谢。

【讨论】:

    猜你喜欢
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多