10

2 つの配列を取得する必要がある 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);

誰でもそれを行う方法を知っていますか?

4

4 に答える 4

11

JSONエンコードを2回エコーする必要はありません....配列をマージしてデータを送信します........

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

データを取得する

initChart2(data.result1,data.result2);
于 2013-03-28T08:03:49.660 に答える
3

json の 2 つのオブジェクト配列を生成できるかどうかを確認してから、これを試すことができます。

    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": {
        ........
    }
 }
]
于 2013-03-28T08:13:35.490 に答える
2

そのように複数のオブジェクトを取得することはできません。JSON オブジェクトの場合、単一のオブジェクトが必要です。できることは、ラッパー オブジェクトを作成して、その中にこれら 2 つの配列を配置することです。

したがって、基本的に、php コードは次のようになります。

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

echo json_encode($arr);
?>

これで、メイン配列が 1 つになり、JSON オブジェクトが 1 つになります。

JS 側では、単一のデータを取得します。リトルモディフィケーションは

$.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);
            }
        });

これはうまくいくはずです。

于 2013-03-28T08:03:21.973 に答える
1

を使用して両方の配列を組み合わせる必要がありますarray_merge()

$response = array();

$response = array_merge($arr1,$arr2);
echo json_encode($response);
于 2013-03-28T08:03:56.800 に答える