【发布时间】:2013-10-15 21:41:00
【问题描述】:
我有一个导入谷歌可视化来绘制折线图的 javascript 文件:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
var inputData = [[1990,157894],[1991,173725],[1992,181227],[1993,183315]];
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Year');
data.addColumn('number', 'January');
data.addRows(inputData);
var options = {
title: 'Unemployed Statistics'
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
之后
<?php
if (isset($_POST['submitted'])) {
我有一个绘制图形的元素:
<div id="chart_div" style="width: 900px; height: 500px;"></div>
这可以正常工作,并且可以很好地绘制图表。但是,当我将 json 变量放入 var inputData 时,没有绘制图表。它看起来像这样:
var inputData = <?php echo json_encode($json['unemployment'), JSON_NUMERIC_CHECK) ?>;
为什么什么都没有绘制?
我在提交表单后运行打印语句来检查<?php echo json_encode($json['unemployment') ?> 是什么。这是输出:[[1990,131337],[1991,160256],[1992,188129]]。
这个输出看起来应该很容易与我的 javascript 代码中的 var inputData 变量一起工作。但是,什么都没有画出来。难道我做错了什么?
【问题讨论】:
-
不要检查 php 输出。在您的浏览器中执行“查看源代码”以查看这些数字是否实际显示在生成的页面中。
-
是的,它们出现在视图源中。
-
您是否缺少 ]? json_encode($json['unemployment']) 或者 ) 应该是 ]? json_encode($json['unemployment'],
-
var inputData = ; ...这是我目前拥有的。我的错。
-
手动放入生成的数据。 [[1990,286601],[1991,319983],[1992,362421],[1993,342919]] 确保数据集有效,如果是这样,则该行不只是在视图区域之外生成.
标签: javascript php json linegraph