Php ajax应答后解析的Highchart数据
我从jquery ajax函数收到了如下响应:Php ajax应答后解析的Highchart数据,php,json,jquery,highcharts,Php,Json,Jquery,Highcharts,我从jquery ajax函数收到了如下响应: ["{y:55,color:'red'}", "{y:21}", "{y:12}", "{y:6}", "{y:3}", "{y:3}"] 在我的PHP代码中,我通过数组中的json_encode进行编码: foreach($pp as $value){ $tmp[]='{y:'.round(100*$pp/$sum_pp,0).'}'; } echo json_encode(array("tableau"=>$tmp)); 我想在我的
["{y:55,color:'red'}", "{y:21}", "{y:12}", "{y:6}", "{y:3}", "{y:3}"]
在我的PHP代码中,我通过数组中的json_encode进行编码:
foreach($pp as $value){
$tmp[]='{y:'.round(100*$pp/$sum_pp,0).'}';
}
echo json_encode(array("tableau"=>$tmp));
我想在我的Highchart图表中使用这个:
[{y:55,color:'red'}, {y:21}, {y:12}, {y:6}, {y:3}, {y:3}]
如何格式化数组以绘制答案?我这样做是为了能够改变一列在系列中的颜色
谢谢您的时间。如果您有可能更改PHP代码,我会选择输出类似于Highcharts中使用的series对象的内容,请参阅 这是一个如下所示的对象:
{
data: [y1, y2, y3],
color: '#FF0000'
}
foreach($pp as $value){
$tmp[] = round(100*$pp/$sum_pp,0);
}
echo json_encode(array(
"data" => $tmp,
"color" => '#FF0000'
));
这将使您的PHP代码如下所示:
{
data: [y1, y2, y3],
color: '#FF0000'
}
foreach($pp as $value){
$tmp[] = round(100*$pp/$sum_pp,0);
}
echo json_encode(array(
"data" => $tmp,
"color" => '#FF0000'
));
另一方面,像你在问题中那样填写$tmp
是不好的。更好的办法是:
foreach($pp as $value){
$tmp[] = array('y' => round(100*$pp/$sum_pp,0));
}
echo json_encode(array("data"=>$tmp));
因为这将在Javascript中解析时创建一个“propper”对象。我的代码中的上述两个示例都将生成一些可以直接在Highcharts中使用的内容。请注意,series
参数采用系列数组。因此,在javascript中,您必须执行以下操作:
series: [
data: response
]
其中
response
是PHP脚本中json_encode
的输出 你能换个说法吗?$pp
中存储了什么?在它上面使用一个foreach
,就好像它是一个数组一样,但是在cicle内部使用它,而不是$value
$pp包含我想用百分比表示的值。我在我的帖子上犯了一个错误。它是圆形的(100*$value/$sum\u pp,0)