如何从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);
因此,任何一个有如何做到这一点的想法?
答
看看你是否能够产生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);
为什么你不合并2个数组,然后将它们编码为J儿子? – 2013-03-28 07:59:24