【问题标题】:JSON Encode converts to null - so weirdJSON 编码转换为 null - 太奇怪了
【发布时间】:2014-04-27 13:43:23
【问题描述】:

这是我见过的最奇怪的事情。我有一个用 php 创建的数组 - 然后我使用 JSON_Encode 将它与 FLOT Graph 一起使用。我曾经回显了编码数组 - 它非常完美。

然后随机出现另一个带有“null”的警告框。

随后,当我将脚本回显到 javascript 中时,该脚本也有一个“null”。

当我检查它时,var d1 为空......

首先我收到一个带有[[0,50],[1,3],[2,488],[3,25],[4,90],[5,50],[6,90],[7,50],[8,5]] 的警告框——然后我收到第二个警告框,我没有用“null”进行编码。

代码:

<?php 
    $num = 0;
    while($row = $sql->fetch(PDO::FETCH_OBJ)){
        $line[] = array($num,intval($row->percent));
        $num ++;
    }
    $TEST = json_encode($line);
    echo "<script>alert('".$TEST."');</script>";
?>

<script>
    var d1 = <?php echo $TEST;?>;
    $(document).ready(function () {
        $.plot($("#chart"), [d1]);
    });
</script>

检查员的输出:

var d1 = []; //Notice the empty array

$(document).ready(function () {
$.plot($("#chart"), [d1]);
});

【问题讨论】:

  • 请以完整但尽可能少的 html 文件显示代码。 IE。我们可以剪切粘贴来复制问题。
  • 一切都在那里。除了 FLOT GRAPH 的包含之外,什么都没有……问题是数组的输出是“[]”
  • 我的意思是你能以表格形式显示它,以便我可以粘贴到文件中,用浏览器渲染它并复制我有 FLOT 库的行为吗?
  • 这似乎是某种 javascript 问题......当我重新加载该部分时 - 它出于某种原因工作。我使用 loadURL 来刷新带有图表的 div,当我激活它时......它可以工作......
  • 您是在单个页面中还是在整个代码中测试此代码?因为这小部分工作正常。

标签: javascript php json


【解决方案1】:

$line = array(); 用于while 循环中的空数据

$line = array();
while(....

你可以勾选空

if(count($line)!=0) {
    $TEST = json_encode($line);
    echo "<script>alert('".$TEST."');</script>";
}

更新:

$TEST = json_encode($line);
echo "<script>$.plot($('#chart'), \"<?php echo $TEST; ?>\");</script>";

【讨论】:

  • 现在它使用正确的数据执行第一个警报框.. 然后是第二个带有“[]”的警报框
  • 请看,但问题是它一开始就充满了数据......并且无缘无故地转换为空......或者我猜恢复到空状态。
  • 我实现了那个代码,现在什么都没有发生,而不是“[]” - 所以不是空数组 - 现在什么都没有。
  • 不幸的是仍然一无所获。
  • 上次更新&lt;script&gt; var d1 = &lt;?php echo $TEST;?&gt;; $(document).ready(function () { $.plot($("#chart"), [d1]); }); &lt;/script&gt;代码需要删除
猜你喜欢
  • 2015-04-22
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 2012-08-14
相关资源
最近更新 更多