2

我的数据库中有数据。假设我现在拥有所有这些:

  ['Task', 'Hours per Day'],
  ['Work', 8],
  ['Eat', 2],
  ['Commute', 2],
  ['Watch TV', 2],
  ['Sleep', 7]

数据库表:

MyDailyRoutineTable
Task       Hours per Day
Work       8
Eat        2
Commute    2
Watch TV   2
Sleep      7
//Do Chores  2 //eventually added
//Exercise   1 //eventually added

我希望能够从我的数据库中添加更多数据,如果以后我决定放置诸如“做家务”和“锻炼”之类的内容,我想直接从数据库中读取所有值,这些值稍后将被(从 MyDailyRoutineTable 中的数据动态填充) ):

  ['Task', 'Hours per Day'],
  ['Work', 8],
  ['Eat', 2],
  ['Commute', 2],
  ['Watch TV', 2],
  ['Sleep', 7],
  ['Do Chores', 2],
  ['Exercise', 1]

代替:

var data = google.visualization.arrayToDataTable([

      ['Task', 'Hours per Day'],
      ['Work', 8],
      ['Eat', 2],
      ['Commute', 2],
      ['Watch TV', 2],
      ['Sleep', 7]
    ]);

它应该是这样的:

var data = google.visualization.arrayToDataTable([

      {database data}

    ]);

最后 2 个不在 jsfiddle 中。我想知道的是如何从 mysql 数据库中读取它们并将它们添加到图表中。

      google.charts.load('current', {
        'packages': ['corechart']
      });
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {

        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work', 8],
          ['Eat', 2],
          ['Commute', 2],
          ['Watch TV', 2],
          ['Sleep', 7]
        ]);

        var options = {
          title: 'My Daily Activities'
        };

        var chart = new google.visualization.PieChart(document.getElementById('piechart'));

        chart.draw(data, options);
      }
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="piechart" style="width: 900px; height: 500px;"></div>

4

1 回答 1

0

基本上要实现您想要的,您需要在后端配置 php 脚本,以 JSON 格式输出数据。您可以发送不符合 google-charts 的 JSON,然后在前端对其进行解析并构建图表,或者您可以在符合 google-chart 的 JSON 上使用 google.visualization.arrayToDataTable() 方法。请参阅下面的链接。在玩了一段时间的谷歌图表之后,我强烈建议发送符合谷歌标准的 JSON。即使它很乏味并且可能需要相当长的时间,您也可以在服务器端卸载大量计算并获得抽象。

谷歌图表 JSON 格式

为 Google Charting API 构建数组和格式化 JSON

于 2016-02-03T09:22:53.003 回答