我从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));
我希望在我的Highchart图表中使用它:
[{y:55,color:'red'}, {y:21}, {y:12}, {y:6}, {y:3}, {y:3}]
如何格式化我的数组来绘制我的答案?我这样做是为了能够改变系列中一列的颜色。
感谢您的时间。
答案 0 :(得分:0)
如果您有可能更改PHP代码,我会选择输出类似于Highcharts中使用的系列对象的内容,请参阅http://api.highcharts.com/highcharts#series。
这是一个看起来像这样的对象:
{
data: [y1, y2, y3],
color: '#FF0000'
}
这会使你的PHP代码看起来像这样:
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
的输出。