【问题标题】:Is something wrong with my json variable?我的 json 变量有问题吗?
【发布时间】: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) ?>; 

为什么什么都没有绘制?

我在提交表单后运行打印语句来检查&lt;?php echo json_encode($json['unemployment') ?&gt; 是什么。这是输出:[[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


【解决方案1】:

看这里: 你有语法错误

<?php echo json_encode($json['unemployment'), JSON_NUMERIC_CHECK) 

$json['unemployment')

【讨论】:

  • var inputData = ;我改变了它。仍然没有任何事情发生。有一个看起来应该绘制图像的空间,但那里什么都没有。
  • 数组现在在js源上可以了吗?
  • 是的,我明白了,但是阵列可以吗?看源头。如果你把它写成硬编码会发生什么。那么图表有效吗?
  • 这是我在表单上推送提交后出现在页面源上的内容.... [[1990,286601],[1991,319983],[1992,362421],[1993,342919 ]]
  • 如果我手动将随机数放入 var inputData 中,例如 [[1990,286601],[1991,319983],[1992,362421],[1993,342919]],那么我的图表可以正常工作。但我需要使用 json 从用户选择中收集它们。
猜你喜欢
  • 2021-10-23
  • 2013-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
相关资源
最近更新 更多