2017-12-05 3 views
0

Was ist der beste Weg, eine PHP-Variable mit JSON-Daten zu js zu analysieren? Auf der PHP-Seite, die ich habe folgendes:JSON von PHP zu js

$pdo = new PDO('mysql:host=localhost;dbname=test', 'homedbuser', 'homedbuser'); 
    $sqlQuery ="SELECT `serie`, `abtrag` FROM `testem`"; 

    $q = $pdo->query($sqlQuery); 

    $result = $q->fetch(PDO::FETCH_ASSOC); 

    $rowcount = $q->rowCount(); 

    $data = array(); 

    for($x=0; $x < $rowcount-1;$x++){ 

    $data[] = $q->fetch(PDO::FETCH_ASSOC); 

    $myJson = json_encode($data); 

    echo $myJson; 

The Output looks like this: 

    [ 
    {"serie":"KK718X","abtrag":"71"}, 
    {"serie":"KK712X","abtrag":"337"}, 
    {"serie":"LK719X","abtrag":"93"}, 
    {"serie":"KK790Y","abtrag":"78"} 
] 

Jetzt möchte ich die Daten in eine js-Variable setzen.

Welche Art von Variable muss ich wählen? Ich habe es mit axaj/xmlhttp Anfrage versucht, aber das hat nicht für Jet funktioniert. Kann jemand erzählen, wie man das richtig macht?

var xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     var myObj = JSON.parse(this.responseText); 
     document.getElementById("show").innerHTML = "myObject[1].serie"; 
    } 
}; 
xmlhttp.open("GET", "demo_file_array.php", true); 
xmlhttp.send();`` 

Antwort

0

mit jQuery können Sie die folgende Syntax verwenden:

$.get(url, function(data) { your code; }, 'json'); 

Sie einen Javascript entspricht Array in den Datenvariablen automatisch erhalten.

Grtngs Dustin

+0

Obwohl es nicht eine gute Erklärung, er hat Recht, sagte OP es eine JS-Array ist outputing so würde Datenarray gesagt werden. – Marco

0

Im Folgenden finden Sie eine literal Zeichenfolge und keinen Verweis auf ein Objekt verwenden identifier

document.getElementById("show").innerHTML = "myObject[1].serie" 

Vielleicht ist

document.getElementById("show").innerHTML = myObj[1].serie; 
+0

Er hat 'var myObj' nicht myObject. –

+0

änderte es in .. myObj [1] .serie, aber ich bekomme immer noch kein Ergebnis ... – marciano

+0

Sie sollten console.log das Ergebnis Ihrer 'JSON.parse (this.responseText)' zu verifizieren, die JSON ist da und gültig, und vergewissern Sie sich, dass Ihre Property-Namen richtig geschrieben sind. –

0

ändern Hier den Code Snippet können Sie für Ihre XMLHttpRequest 'S Success Handler verwenden:

var myObj = JSON.parse(this.responseText); 
document.getElementById("show").innerHTML = myObj[1].serie; // Use myObj not myObject and that too without `""` 
0

Verwenden folgenden Code:

var xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     var myObj = JSON.parse(this.responseText); 
     //document.getElementById("show").innerHTML = "myObject[1].serie" add a text node to element html. 

     document.getElementById("show").innerHTML = myObj[1].serie; //For Obhect data serie. 
    } 
}; 
xmlhttp.open("GET", "demo_file_array.php", true); 
xmlhttp.send();