2017-06-19 1 views
0

Guten Tag. Ich hatte dieses Problem, das ich nicht zu lösen weiß. So starten Sie mit, hier ist mein Code:Zeige undefine auf meinem Balkendiagramm

$(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); 
    } 
}); }); 

Die test.php einen gleichen Daten zu erzeugen, die in json_encode Format:

[{"schoolyear":"2010","enrollees":"100"},{"schoolyear":"2011","enrollees":"150"},{"schoolyear":"2012","enrollees":"300"},{"schoolyear":"2013","enrollees":"250"}]

Ich frage mich, meine in meinem html, es zeigt undefiniert. Will irgendjemand bitte erklären warum. Vielen Dank.

durch die Art und Weise, hier ist mein PHP-Code: `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

posten Sie Ihre test.php Datei – Rahul

+0

Sorry, ich habe meinen Beitrag mit meiner PHP-Datei aktualisiert. –

Antwort

0

data ist ein Array [], kein Objekt {}

daher nicht for (.. in ..)

Stattdessen verwenden traditionelle for-Schleife ...

for (var i = 0; i < data.length; i++) { 
    shclYear.push(data[i].schoolyear); 
    enrls.push(data[i].enrollees); 
} 

oder zur Verwendung sollte jeder ...

data.forEach(function (row) { 
    shclYear.push(row.schoolyear); 
    enrls.push(row.enrollees); 
}); 

auch, wollen wahrscheinlich die Art setzen auf dem Ajax-Aufruf JSon ...

$.ajax({ 
    url: "test.php", 
    method: "GET", 
    dataType: "json", 
    ... 
+0

Es hilft wirklich .. ALOT !! Vielen Dank.. –

Verwandte Themen