我正在开发一个脚本,它通过PHP从数据库获取数据,然后将其传递给另一个脚本,该脚本使用数据作为高图表的输入(bar drilldown)。使用JSON数组发送数据。我有两个文件如下:
在服务器端:
<?php
header("content-type: application/json");
$array = array(
"y" => array(44.11),
"color" => array( "colors" => array(0)),
"drilldown" => array(
"name" => array("MSIE versions"),
"categories" => array("MSIE 6.0","MSIE 7.0","MSIE 8.0", "MSIE 9.0"),
"data" => array(1,2,3,5,6),
"color" => array("colors" => array(0))
)
);
echo $_GET['callback']. '('. json_encode($array) . ')';
?>
在客户端:
$(document).ready(function() {
var colors = Highcharts.getOptions().colors,
categories = ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera'],
name = 'Browser brands',
data = [{}];
var url = "php/live-server-data.php?callback=?";
$.getJSON(url, function(input) {
data = input
});
High图表需要的输入格式(以及我尝试重新创建的内容)是:
data = [{
y: 55.11,
color: colors[0],
drilldown: {
name: 'MSIE versions',
categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0'],
data: [10.85, 7.35, 33.06, 2.81],
color: colors[0]
}}]
});
我没有让它工作,任何人都可以帮助我看看我做了什么错误?非常适合任何帮助。我被困了
BR。
答案 0 :(得分:1)
如果预期的格式是:[{...}]
那么上面的例子是不是错过了最外面的数组?当前返回的PHP数据是{...}
。
这可以在PHP中解决:
echo $_GET['callback']. '(['. json_encode($array) . '])';
或者在JS中:
data = [input]
答案 1 :(得分:1)
我认为你必须更换它:
echo $_GET['callback']. '('. json_encode($array) . ')';
使用
echo json_encode($array);
如果你需要使用$ array加入“callback”数组,你必须以编程方式执行而不是像字符串一样处理....
希望这会有所帮助。