Highcharts Pyramid Chart在JSON中不显示数据,PHP
问题描述:
在Highcharts中对金字塔图使用JSON时,控制台日志中没有任何错误,但没有显示数据。Highcharts Pyramid Chart在JSON中不显示数据,PHP
我有charts.php其结果是这样的:
{"success":1,"data":[{"name":"John Spoon","data":300}, {"name":"Dave Jones","data":200},{"name":"Other","data":500}]}
这是我已经试过,不返回任何数据。
<div id="chart" style=
"height:600px;width:100%;"></div>
<script>
$(function() {
$("#chart").html("Loading Activity Log Graph...");
var options = {
chart: {
type: 'pyramid',
renderTo: 'chart',
marginRight: 100
},
title: {
text: 'Activity',
x: -50
},
plotOptions: {
series: {
dataLabels: {
enabled: true,
format: '<b>{point.name}</b> ({point.y:,.0f})',
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black',
softConnector: true
}
}
},
legend: {
enabled: false
},
name: 'Activity Count',
series: [{}]
};
$.ajax({
url: "charts.php",
type:'post',
dataType: "json",
success: function(data){
options.series = data.data;
var chart = new Highcharts.Chart(options);
}
});
});
</script>
这是我想要的结果,表明了无需使用JSON的: http://jsfiddle.net/0dyy44hz/
什么我需要改变它显示的数据?
答
看着pyramid example,数据必须是单个系列的形式,每个数据点为[name, value]
的数组。你有两个选择,改变你的PHP输出正确的格式或在JavaScript中修改PHP输出。既然你没有张贴你的PHP代码,我会做后:
var data = {"success":1,"data":[{"name":"John Spoon","data":300}, {"name":"Dave Jones","data":200},{"name":"Other","data":500}]};
options.series = [{
data: $.map(data.data, function(i){ // loop outputted data
return [[i.name, i.data]]; // coerce into an array of [name,value]
})
}];
这里的工作example。
感谢您的回复,我试图从矿山到'成功改变了ajax成功函数:function(数据){ \t \t \t \t options.series = {[ 数据:$ .MAP(data.data,功能(i){ return [[i.name,i.data]]; }) \t \t}]; var chart = new Highcharts.Chart(options); '但是我在控制台日志中得到一个格式错误,它指示我到这里:http://www.highcharts.com/errors/14 – Koala 2014-10-16 14:38:52
忽略上述内容,我在PHP中改变了一些正在破坏它的东西。这工作,谢谢! – Koala 2014-10-16 14:49:01