2017-06-19 150 views
0

美好的一天。我遇到了这个我不知道如何解决的问题。首先,从这里开始是我的代码:在我的条形图上显示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);` 
+0

发表您的test.php文件 – Rahul

+0

对不起,我已经更新了我的职务与我的PHP文件。 –

回答

0

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

这真的有帮助..很重要!非常感谢你.. –