这是我的Symfony Controller的代码:
$em=$this->getDoctrine()->getManager();
$queryIndex = $em->createQuery( 'SELECT g.index
FROM MySpaceMyBundle:Graphique g');
$array = array_map('current', $queryIndex);
$response = new Response();
$data = json_encode($array, JSON_NUMERIC_CHECK);
$response->headers->set('Content-Type', 'application/json');
$response->setContent($data);
return $response;
此PHP脚本将我返回一个带数字式最好中心的数组,因此此代码将我返回以下JSON响应:
[1700,1200,1200,1304,1800,2012,2048,1048,3000,5421]
但是,如果我的控制器中有许多查询,我该如何继续进行highchart.js中的不同事物?
也就是说,我想要:
- 第一个学说查询的响应,以使 series (图形的列)
- 第二第二个学说查询的响应是为 yaxis
中的set datas进行的。- 第三第三学说查询的响应是为 xaxis
中的set datas进行的。
所以我想返回许多与许多学说查询相对应的数组,但是要将它们用于在我的视图中设置我的图表。
请注意,我想要的不是数组数组,我想返回许多类似的数组,并在我的Highchart脚本中使用它们:
/*the first array of my first query*/
[1700,1200,1200,1304,1800,2012,2048,1048,3000,5421]
/*the second array of my second query*/
[200,558,...........,154]
/*the third array of my third query*/
[another array of numeric values]
...
不是这样:
{ "my_first_result": [1700,1200,1200,1304,1800,2012,2048,1048,3000,5421], "my_other_result" : [200,558,...........,154] }
or
[[first array], [second array], ...]
这是在我看来渲染图表的脚本:
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'column'
},
series: [{}]
};
var url = "{{ path('myPathToMyPage') }}";
$.getJSON(url, function(data) {
options.series[0].data = data;
var chart = new Highcharts.Chart(options);
});
});
因此,在这里,我暂时拥有的唯一数组来自我的第一个查询,对应于我的数据库中的数字值,并在此处用于HighChart Graphic的Serie(列图)。现在,我想为了设置yaxis和xaxis。
编码的JSON只是纯文本,例如:
$data = json_encode($array, JSON_NUMERIC_CHECK) . "n" . json_encode($array2, JSON_NUMERIC_CHECK);
在此示例中,JSON字符串由换行线界定。