如何从php使用json,jquery ajax获取两个数组?

问题描述:

我想在jqchart中建立一个图表,我需要获得两个数组如何从php使用json,jquery ajax获取两个数组?

现在我想要执行如下给出的操作。这是给出的错误的课程。

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

因此,任何一个有如何做到这一点的想法?

+1

为什么你不合并2个数组,然后将它们编码为J儿子? – 2013-03-28 07:59:24

看看你是否能够产生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方面,你会得到单个数据。一点修改将

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

这应该工作。

无需回声JSON编码两次....合并阵列和发送数据.......

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

initChart2(data.result1,data.result2); 
+2

+1不错的答案。 – 2013-03-29 07:25:47

你需要获取数据使用array_merge()来组合两个阵列。

$response = array(); 

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