如何获得两个数组从PHP使用json,jquery ajax


how to get two arrays from php using json,jquery ajax?

我想在jqchart中构建一个图形,我需要得到两个数组

现在我想执行如下所示的操作。这当然是给出错误。

html
 $.ajax(
        {
            type: "GET",
            url: "customer_coverage.php",
            data: {id:id},
            contentType: "application/json",
            dataType: "json",
            success: function (data21,data22) {
                initChart2(data21,data22);
            }
        });


        function initChart2(data21,data22) {
            $('#jqChart2').jqChart({

                series: [
                {
                            type: 'column',
                            title: 'no of days ',
                data:data21,
                        },
                {
                            type: 'column',
                            title: 'no of days ',
            data:data22,
                        },

                        ]
            });
        }

这里的PHP代码

  echo json_encode($arr1);
  echo json_encode($arr2);

有谁知道怎么做吗?

不需要回显两次json编码....合并数组并发送数据.......

echo json_encode(array('result1'=>$arr1,'result2'=>$arr2));

获取数据
initChart2(data.result1,data.result2);

看看你是否能够生成两个json对象数组,然后你可以尝试这样做:

    var data21,data22; 
    $.ajax({
        type: "GET",
        url: "customer_coverage.php",
        data: {id:id},
        contentType: "application/json",
        dataType: "json",
        success: function (data) {
            $.each(data, function(i, item){
               data21 = item.data21;
               data22 = item.data22;
            });
            initChart2(data21,data22);
        }
    });

我想如果你能写出这个

[
 {
    "data21": {
        .........
    },
    "data22": {
        ........
    }
 }
]

你不能得到这样的多个对象。对于JSON对象,您需要有单个对象。你能做的就是,创建一个包装器对象把这两个数组放到里面。

基本上,你的php代码是:

<?php
$arr= array();
$arr['arr1'] = $arr1;
$arr['arr2'] = $arr2;
echo json_encode($arr);
?>

现在你将有一个主数组和一个JSON对象。

在JS端,您将获得单个数据。Little Modification

$.ajax(
        {
            type: "GET",
            url: "customer_coverage.php",
            data: {id:id},
            contentType: "application/json",
            dataType: "json",
            success: function (data) {
            var data21=data['arr1'];
            var data22=data['arr2'];
                initChart2(data21,data22);
            }
        });

您需要使用array_merge()组合两个数组。

$response = array();
$response = array_merge($arr1,$arr2);
echo json_encode($response);