MySQL到JSON导致空的Google可视化图表(无数据)

时间:2016-04-27 20:23:31

标签: php jquery json

我正在使用以下代码从数据库中提取的数据创建饼图:

<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,所以我可能会遗漏一些非常明显的东西。不过,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

你有两种方式。

1 - 在你的代码中,第7行“var jsonString”已经是一个对象/数组,所以你不需要第8行,因为如果你不使用引号,那么Javascript将理解为object /数组,只是不需要进行解析。所以,你的输出将是这样的:

var jsonString = [...];

2 - 现在,对于Javascript理解字符串,您需要在第7行添加引号,如下所示:

var jsonString = "<?php echo json_encode($v); ?>";

输出应该是这样的:

var jsonString = "[...]";

在第二种情况下,您需要解析。