为什么每个字符都显示在一个新的line/row上?
Why is each character displayed on a new line/row?
在图表上插入我的 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>
也许查询结果中有一些杂散字符?
尝试
$pingresposta.= trim($valor['resposta']);
$pinghorario.= trim($valor['horario']);
datasets.data
期望使用数组,但 json_encode
返回字符串。在javascript中,字符串可以按字符迭代,并且和数组一样有长度……所以鸭子嘎嘎叫,没有发生错误。
如果你要json_encode,你需要在回显的PHP输出上使用JSON.parse
,并确保它是一个数组,然后再将它发送到图表被解析。
更新:
试试这个。
<?php
$graphdata = array();
while($valor = mysql_fetch_assoc($sql))
{
extract($valor);
$graphdata[] = $valor['resposta'];
}
echo '[' . implode(',', $graphdata) . ']';
?>
在图表上插入我的 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>
也许查询结果中有一些杂散字符? 尝试
$pingresposta.= trim($valor['resposta']);
$pinghorario.= trim($valor['horario']);
datasets.data
期望使用数组,但 json_encode
返回字符串。在javascript中,字符串可以按字符迭代,并且和数组一样有长度……所以鸭子嘎嘎叫,没有发生错误。
如果你要json_encode,你需要在回显的PHP输出上使用JSON.parse
,并确保它是一个数组,然后再将它发送到图表被解析。
更新:
试试这个。
<?php
$graphdata = array();
while($valor = mysql_fetch_assoc($sql))
{
extract($valor);
$graphdata[] = $valor['resposta'];
}
echo '[' . implode(',', $graphdata) . ']';
?>