在我的条形图上显示undefine
问题描述:
美好的一天。我遇到了这个我不知道如何解决的问题。首先,从这里开始是我的代码:在我的条形图上显示undefine
$(document).ready(function() {
$.ajax({
url: "test.php",
method: "GET",
success: function(data) {
console.log(data);
var shclYear = [];
var enrls = [];
for(var i in data) {
shclYear.push(data[i].schoolyear);
enrls.push(data[i].enrollees);
}
var chartData = {
labels: shclYear,
datasets : [
{
label : "School Year",
data : enrls
}
]
};
var ctx = $('#myCanvas');
var barGraph = new Chart(ctx, {
type: 'bar',
data: chartData
});
},
error: function(data) {
console.log(data);
}
}); });
的test.php的生成相同的数据,这json_encode格式:
[{"schoolyear":"2010","enrollees":"100"},{"schoolyear":"2011","enrollees":"150"},{"schoolyear":"2012","enrollees":"300"},{"schoolyear":"2013","enrollees":"250"}]
我想知道,我在我的HTML,它显示未定义,未定义。请问任何人请解释原因。非常感谢你。顺便说一下,这里是我的php代码:`include('dbFunction.php');
$dbOperation = new dbFunctions();
$qryData = $dbOperation->selectQry('Select schoolyear, enrollees From testData');
$data = array();
//for ($x=0; $row=$qryData->fetch(); $x++) {
foreach ($qryData as $row) {
# code...
//}
$data[] = array_unique($row);
//echo $data .'<br>';
}
echo json_encode($data);`
答
data
是一个数组[]
,而不是一个对象{}
因此,不宜用for (.. in ..)
代替,使用传统的for循环...
for (var i = 0; i < data.length; i++) {
shclYear.push(data[i].schoolyear);
enrls.push(data[i].enrollees);
}
或用于每个...
data.forEach(function (row) {
shclYear.push(row.schoolyear);
enrls.push(row.enrollees);
});
还,可能需要设置类型JSON在Ajax调用...
$.ajax({
url: "test.php",
method: "GET",
dataType: "json",
...
+0
这真的有帮助..很重要!非常感谢你.. –
发表您的test.php文件 – Rahul
对不起,我已经更新了我的职务与我的PHP文件。 –