JSON编码转换为null - 太奇怪了

时间:2014-04-27 05:05:43

标签: javascript php json

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

然后随机出现另一个警告框,其中包含" null"。

随后,该脚本还有一个" null"当我回应它到javascript。

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

首先我得到一个警告框[[0,50],[1,3],[2,488],[3,25],[4,90],[5,50],[6,90],[7,50],[8,5]] - 然后我得到第二个警告框,我没有用#34; 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>

Inspector的输出:

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

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

1 个答案:

答案 0 :(得分: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>";
相关问题