Почему каждый символ отображается в новой строке / строке?

Вставляя результат моего 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>

0

Решение

datasets.data ожидает использования массива, но json_encode возвращает строку. В javascript строки могут повторяться для каждого символа и иметь длину, как у массивов … так что утка вздрогнула и ошибки не произошло.

Вам нужно будет использовать JSON.parse на echo’d вывод PHP, если вы собираетесь использовать json_encode и убедиться, что это массив, прежде чем отправлять его на анализируемый график.

Обновить:

Попробуйте это вместо этого.

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

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

Другие решения

Может быть, какие-то случайные символы из результатов запроса?
Пытаться

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