0

我从 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}]

如何格式化我的数组以绘制我的答案?我这样做是为了能够改变系列中一列的颜色。

谢谢你的时间。

4

1 回答 1

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
]

PHP 脚本response的输出在哪里。json_encode

于 2013-04-28T15:24:53.660 回答