Javascript 通过php的Highcharts饼图数据格式
我用高图表做饼图。下面是它的JS代码:Javascript 通过php的Highcharts饼图数据格式,javascript,jquery,json,highcharts,Javascript,Jquery,Json,Highcharts,我用高图表做饼图。下面是它的JS代码: $(document).ready(function () { var chart; var graphData = $("#graphContentdata").val(); console.log(graphData); var options = { chart: { renderTo: 'graphContainer', plotBackgroundColor: null,
$(document).ready(function () {
var chart;
var graphData = $("#graphContentdata").val();
console.log(graphData);
var options = {
chart: {
renderTo: 'graphContainer',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'SOV'
},
tooltip: {
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
}
}
},
series: [{
type: 'pie',
name: 'Browser share',
data: []
}]
}
chart = new Highcharts.Chart(options);
chart.series[0].setData("["+graphData+"]");
});
问题是:
chart.series[0].setData("["+graphData+"]");
不创建图形,但如果我从控制台的graphData
变量位置复制粘贴值,其工作原理如下:
chart.series[0].setData([['www.quora.com', 0.23],['www.slideshare.net', 0.25],['me', 99.52]]);
他正在工作
我在这里犯了什么错误?问题是,当您使用
chart.series[0].setData("["+graphData+"]");
你需要这样做。您可以使用以下方法转换字符串:
您也可以,但在这种情况下,您需要打开和关闭字符串:
$.parseJSON("[[\"www.quora.com\", 0.23],[\"www.slideshare.net\", 0.25],[\"me\", 99.52]]");
您是否尝试将echo json_encode($data)?实际上,您的数据是一个php数组,在js中没有任何值。无论如何,在输入值中写入并不是最好的方法;但它给出了空字符串…是否有其他格式将其传递给饼图数据???[me]=99.52[www.qoura.com]=0.23[www.slideshare.net]=0.25是的,错误是因为您从输入值中获得的内容看起来像数组,但实际上是一个示例字符串。甚至我尝试将其作为JSON值传递,如:{“www.qoura.com”:0.23,“www.slideshare.net”:0.25,“me”:99.52}。。。但这也不起作用
chart.series[0].setData("["+graphData+"]");
chart.series[0].setData(eval("["+graphData+"]"));
$.parseJSON("[[\"www.quora.com\", 0.23],[\"www.slideshare.net\", 0.25],[\"me\", 99.52]]");