php - 谷歌图表 : I get json output but still no graph

标签 php mysql json google-visualization

我终于设法让我的 php 代码适用于我的谷歌图表柱形图。当我运行 php 时,我得到以下输出

{"cols":[{"id":"id","label":"second","type":"number"},
{"id":"threads","label":"threads","type":"number"}],"rows":[{"c":[{"v":1},{"v":1411}]},
{"c":[{"v":2},{"v":1411}]},{"c":[{"v":3},{"v":1409}]},{"c":[{"v":4},{"v":1408}]},{"c":
[{"v":5},{"v":1407}]},{"c":[{"v":6},{"v":1408}]},{"c":[{"v":7},{"v":1408}]},{"c":[{"v":8},
{"v":1410}]},{"c":[{"v":9},{"v":1410}]},{"c":[{"v":10},{"v":1412}]},{"c":[{"v":11}, 
{"v":1415}]}]} 

使用另一篇文章作为指南,here ,我相信我的输出是正确的。但是我并不完全确定,因为我的柱形图仍未在我的网络应用程序上显示。

这是我用来显示图表的代码

<script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

        google.load('visualization', '1', {'packages':['corechart']});


        google.setOnLoadCallback(drawChart);

        function drawChart() {
            var json = $.ajax({
                url: 'databaseQuery.php', 
                dataType: 'json',
                async: false
            }).responseText;

            var data = new google.visualization.DataTable(json);
            var options = {
                title: 'Active Threads',
                is3D: 'false',
                width: 800,
                height: 600
            };
            var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
            chart.draw(data, options);

        }
    </script>

我有一个显示良好的表格,它也从 mysql 服务器获取数据,并显示与图表应在表格中相同的数据。

我仔细检查了这段代码,似乎找不到错误。任何人都可以指出错误或提出更好的方法吗?如果错误出现在我的 JSON 中,它应该是什么样子才能正常工作?

我的数据库中的表也如下所示

id     threads
 1       1411
 2       1411
 3       1409
 4       1408
 5       1407
 6       1408
 7       1408
 8       1410
 9       1410
 10      1412
 11      1415

最佳答案

如图所示,您的代码没有任何问题。我刚刚创建了一个测试页面,基本上是从您的标记中剪切和粘贴的,并且效果非常好。

我建议您尝试用内联 json 初始化替换 ajax 调用,看看这是否适合您。

var json = {
  "cols":[
    {"id":"id","label":"second", "type":"number"},
    {"id":"threads","label":"threads","type":"number"}
  ],
  "rows":[
    {"c":[{"v":1},{"v":1411}]},
    {"c":[{"v":2},{"v":1411}]},
    {"c":[{"v":3},{"v":1409}]},
    {"c":[{"v":4},{"v":1408}]},
    {"c":[{"v":5},{"v":1407}]},
    {"c":[{"v":6},{"v":1408}]},
    {"c":[{"v":7},{"v":1408}]},
    {"c":[{"v":8},{"v":1410}]},
    {"c":[{"v":9},{"v":1410}]},
    {"c":[{"v":10},{"v":1412}]},
    {"c":[{"v":11},{"v":1415}]}
  ]
};

var data = new google.visualization.DataTable(json);

如果有效,那么您至少可以确认问题出在 ajax 调用或 php 后端的某个位置。

另一个想法:这可能看起来很明显,但值得仔细检查您的页面上是否有一个带有 chart_div id 的元素?

<div id='chart_div'></div>

关于php - 谷歌图表 : I get json output but still no graph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494303/

相关文章:

javascript - HTML5 视频 canPlay 事件第二次不起作用

php - 我的网站感染了经过混淆处理的 PHP 恶意软件 - 它在做什么 + 我该如何摆脱它?

php 测试字符串是否以 _text + number 结尾

mysql - ORDER BY WHERE IN(子查询)

mysql - 编写 MYSQL REGEXP : greedy vs negated confusion

mysql - 备份mysql二进制文件

json - 使用 flymake/flycheck 在 Emacs 中使用 JSON 模式验证 JSON 文件?

php - 在 Woocommerce 中下订单后,将值插入自定义表中

python - 预期关键数据类型不匹配 : S actual: L Dynamodb insert error with boto3

javascript - 如何在没有循环的情况下使用 mustache.js 呈现此 JSON