我正在使用以下代码从数据库中提取的数据创建饼图:
<script type="text/javascript">
google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var col=<?php echo json_encode($aColumn); ?>;
var jsonString = <?php echo json_encode($v); ?>; //Access PHP variable in JavaScript JSON STRING
var jsonArray=JSON.parse(jsonString);
var options = {
pieHole: 0.5,
pieSliceTextStyle: {
color: 'black',
},
legend: 'none'
};
var testArray = [[col,"COUNT"]];
$.each(jsonArray, function() {
var item = [this[col],this.TOTAL]; //document.write(item);
testArray.push(item);
});
var data = google.visualization.arrayToDataTable([testArray]);
var chart = new google.visualization.PieChart(document.getElementById('donut'));
chart.draw(data, options);
}
</script>
当我尝试在Google Visualization LineChart中绘制此数据时,图表为空。只是页面上没有打印数据。
这是我第一次使用PHP,所以我可能会遗漏一些非常明显的东西。不过,任何帮助都会受到赞赏。
答案 0 :(得分:0)
你有两种方式。
1 - 在你的代码中,第7行“var jsonString”已经是一个对象/数组,所以你不需要第8行,因为如果你不使用引号,那么Javascript将理解为object /数组,只是不需要进行解析。所以,你的输出将是这样的:
var jsonString = [...];
2 - 现在,对于Javascript理解字符串,您需要在第7行添加引号,如下所示:
var jsonString = "<?php echo json_encode($v); ?>";
输出应该是这样的:
var jsonString = "[...]";
在第二种情况下,您需要解析。