2016-11-15 2 views
1

Ich habe ein Problem mit dem Array von PHP über Ajax übergeben. Ich muss die Daten in eine Chart.js-Grafik einfügen.Pass Ajax Antwort-Array zu Chart.js

Meine Ajax sieht wie folgt aus:

$.ajax({ 
    url: "/wordpress/wp-admin/admin-ajax.php", 
    method: "POST", 
    data: { action: 'hfwpGetGraph' }, 
    success: function(response) { 
     var myLabels = []; 
     var myData = []; 

     for(var i in response) { 
      myLabels.push(response[i].Date); 
      myData.push(response[i].DiaLevel); 
     } 
     <Chart.js code> 
    } // End Success 
}) // End Ajax 

Wenn ich meine Array jede Zeile zeigt es wie folgt aussieht:

[{"ID":"17","UserID":"29","Date":"2016-09-25","Systolic1":"50","Systolic2":"0","Systolic3":"45","Diastolic1":"48","Diastolic2":"0","Diastolic3":"51","SysAverage":"0","DiaAverage":"0","SysLevel":"0","SysText":"","DiaLevel":"0","DiaText":""}, 

Wenn ich "MyLabels" oder "myData" sie beide Shows zeigen:

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 

Was mache ich falsch .... ??

Hinweis: Mein PHP-Array wird wie folgt gefasst:

echo json_encode($graphData); 

Grüße Flemming

+0

Versuchen Sie, auf (var i in response [0]) zuzugreifen und zu überprüfen, ob Ihr Antwort-Array korrekt ist. –

+0

Haben Sie versucht, die einzelnen Schleifen zu verwenden, da for-in normalerweise zum Durchlaufen von Objekten verwendet wird. –

+0

Das "for (var ich als Antwort [0]) "gab nur ein leeres Array. –

Antwort

0

löste ich das Problem, indem Sie die "parseJSON" nach dem "Erfolg".

success: function(response) { 
    var json = $.parseJSON(response); 

Aber ich verstehe nicht das vollständige Konzept der Lösung. Die meisten Beispiele, die ich gesehen habe, ein Array() von PHP zu Javascript durch Ajax zu analysieren, benutzen nicht die parseJSON Umwandlung.

Sie arbeiten nur mit der Antwort, als ob es bereits ein Array und keine Zeichenfolge wäre.