2013-03-28 14 views
8

私は2つの配列を取得する必要があるjqchartのグラフを作成したいjson、jquery ajaxを使用してPHPから2つの配列を取得する方法?

今私は以下のように操作を実行したいと思います。誤りを与えています。

HERESにPHPコード

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

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, 

         }, 


         ] 
      }); 
     } 

ので、いずれかがそれを行う方法のアイデアを持って?

+1

なぜ2つの配列を結合してからJ息子? –

答えて

2

あなたは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": { 
     ........ 
    } 
} 
] 
2

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

だから、基本的に、あなたのPHPコードは次のようになります。

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

echo json_encode($arr); 
?> 

だから今、あなたは、単一のメインアレイなどの単一JSONオブジェクトを持つことになります。

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

これは動作するはずです。あなたが必要とする

initChart2(data.result1,data.result2); 
9

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

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

と取得データ配列array_merge()を使用して両方を組み合わせる。

$response = array(); 

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

+1すてきな答え。 –

1

によって

関連する問題