为什么每个字符都显示在新的行/行上?

时间:2015-03-18 20:12:41

标签: php chart.js

在图表上插入我的php结果时,会将每个数字分隔到一个新行。 也就是说,如果有120,它将1,2和0分开。新的每一行。

我的错误是什么?
我的代码:

<div>
<canvas id="canvas" height="100%"></canvas>
</div>
    <script>
        var lineChartData = {
            labels :[1,2,3,4,5,6,7],

            datasets : [
                {
                    label: "My First dataset",
                    fillColor : "rgba(220,220,220,0.2)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(220,220,220,1)",
                    data :
                    <?php
while($valor = mysql_fetch_assoc($sql))
{
    extract($valor);
    $pingresposta.= $valor['resposta'];
    $pinghorario.= $valor['horario'];
}
echo json_encode($pingresposta);
?>

                }
            ]

        }

    window.onload = function(){
        var ctx = document.getElementById("canvas").getContext("2d");
        window.myLine = new Chart(ctx).Line(lineChartData, {
            responsive: true

        });
    }
    </script>

2 个答案:

答案 0 :(得分:0)

查询结果中是否有一些迷路字符? 尝试

$pingresposta.= trim($valor['resposta']);
$pinghorario.= trim($valor['horario']);

答案 1 :(得分:0)

datasets.data期待使用数组,但json_encode返回一个字符串。在javascript中,字符串可以按字符迭代,并且长度就像数组一样...所以鸭子嘎嘎叫并且没有发生错误。

如果您要使用json_encode并确保它在将数据发送到图表之前确保它是一个数组,那么您需要在echo&#PHP输出上使用JSON.parse被解析。

更新

试试这个。

<?php
$graphdata = array();
while($valor = mysql_fetch_assoc($sql))
{
    extract($valor);
    $graphdata[] = $valor['resposta'];
}

echo '[' . implode(',', $graphdata) . ']';
?>