2017-09-18 1 views
0

Ich versuche, eine Ajax-Anfrage an eine MySQL-Datenbank und müssen durchlaufen die Ergebnisse und setzen Sie sie als Javascript-Variablen oder verwenden Sie sie in Funktionen innerhalb der Schleife.Setzen Sie Javascript-Variablen von Ajax Anfrage zu MySQL-Datenbank

mysql query where id nicht eindeutig zuzuordnen ist und wird eine Reihe von Ergebnissen zurück:

$id =$_REQUEST['id']; 
    $sth = $conn->prepare("SELECT * FROM quote where id = :id"); 
    $sth->bindParam(':id', $id); 
    $sth->execute(); 
    $result = $sth->fetchAll(); 
    echo json_encode($result); 

Ajax-Anfrage mit Post und log Ergebnisse:

$.ajax({  
    type: "POST", 
    data: "id="+id, 
    url: "get-quote-data.php", 
    cache: false, 
    success: function (result) { 
     console.log(result); 
     } 
    }); 

Protokolle 2 Objekte in einem Array, wie es Derzeit 2 Ergebnisse:

[{"id":"6776t2dhc3aq","0":"6776t2dhc3aq","Wid":"6776t2dhc3aqnew0.5981985541579144","1":"6776t2dhc3aqnew0.5981985541579144","room":"Plot 1 Bedroom","2":"Plot 1 Bedroom","style":"S150","3":"S150","type":"upvc","4":"upvc","colour":"0","5":"0","RAL":"","6":"","cill":"2","7":"2","width":"1023.0000","8":"1023.0000","height":"1585.0000","9":"1585.0000","fitting":"1","10":"1","comments":"","11":"","spacercol":"1","12":"1","glassstyle":"0","13":"0","handles":"0","14":"0","hinges":"0","15":"0","trickle":"0","16":"0","sash":"0","17":"0","fanlight":"0","18":"0","total":"0.0000","19":"0.0000","g1":"6","20":"6","g2":"6","21":"6","g3":"0","22":"0","g4":"0","23":"0","g5":"0","24":"0","g6":"0","25":"0","g7":"0","26":"0","g8":"0","27":"0","m1":"1023.0000","28":"1023.0000","m2":"1023.0000","29":"1023.0000","m3":"0.0000","30":"0.0000","m4":"0.0000","31":"0.0000","m5":"0.0000","32":"0.0000","m6":"0.0000","33":"0.0000","m7":"0.0000","34":"0.0000","m8":"0.0000","35":"0.0000","t1":"777.5000","36":"777.5000","t2":"777.5000","37":"777.5000","t3":"0.0000","38":"0.0000","t4":"0.0000","39":"0.0000","t5":"0.0000","40":"0.0000","t6":"0.0000","41":"0.0000","t7":"0.0000","42":"0.0000","t8":"0.0000","43":"0.0000","ICwinBor":"0","44":"0","LOF":"0","45":"0","LOH":"0","46":"0","intFinish":"0","47":"0","fEx":"0","48":"0","fExt":"0","49":"0","fExl":"0","50":"0","fExr":"0","51":"0","cler":"0","52":"0","fMul":"0","53":"0","commission":"666.999666","54":"666.999666","survey":"666.999666","55":"666.999666","NumItem":"1","56":"1","slideType":"","57":"","horns":"0","58":"0","vsLS":"0","59":"0","vsArched":"0","60":"0","vsFixed":"0","61":"0","vsSecure":"0","62":"0","vsPolished":"0","63":"0","vsJointed":"0","64":"0","vsBay":"0","65":"0","UPVCfStyle":"1","66":"1","UPVCbStyle":"1","67":"1","ALUfStyle":"1","68":"1","ALUbStyle":"1","69":"1","drain":"1","70":"1","ventPos":"1","71":"1","ALUProfile":"Alitherm 600","72":"Alitherm 600"}, 
{"id":"6776t2dhc3aq","0":"6776t2dhc3aq","Wid":"6776t2dhc3aqnew0.8957906831392683","1":"6776t2dhc3aqnew0.8957906831392683","room":"Plot 2 Bedroom","2":"Plot 2 Bedroom","style":"S150","3":"S150","type":"upvc","4":"upvc","colour":"0","5":"0","RAL":"","6":"","cill":"2","7":"2","width":"1023.0000","8":"1023.0000","height":"1585.0000","9":"1585.0000","fitting":"1","10":"1","comments":"","11":"","spacercol":"1","12":"1","glassstyle":"0","13":"0","handles":"0","14":"0","hinges":"0","15":"0","trickle":"0","16":"0","sash":"0","17":"0","fanlight":"0","18":"0","total":"0.0000","19":"0.0000","g1":"6","20":"6","g2":"6","21":"6","g3":"0","22":"0","g4":"0","23":"0","g5":"0","24":"0","g6":"0","25":"0","g7":"0","26":"0","g8":"0","27":"0","m1":"1023.0000","28":"1023.0000","m2":"1023.0000","29":"1023.0000","m3":"0.0000","30":"0.0000","m4":"0.0000","31":"0.0000","m5":"0.0000","32":"0.0000","m6":"0.0000","33":"0.0000","m7":"0.0000","34":"0.0000","m8":"0.0000","35":"0.0000","t1":"777.5000","36":"777.5000","t2":"777.5000","37":"777.5000","t3":"0.0000","38":"0.0000","t4":"0.0000","39":"0.0000","t5":"0.0000","40":"0.0000","t6":"0.0000","41":"0.0000","t7":"0.0000","42":"0.0000","t8":"0.0000","43":"0.0000","ICwinBor":"0","44":"0","LOF":"0","45":"0","LOH":"0","46":"0","intFinish":"0","47":"0","fEx":"0","48":"0","fExt":"0","49":"0","fExl":"0","50":"0","fExr":"0","51":"0","cler":"0","52":"0","fMul":"0","53":"0","commission":"666.999666","54":"666.999666","survey":"666.999666","55":"666.999666","NumItem":"1","56":"1","slideType":"","57":"","horns":"0","58":"0","vsLS":"0","59":"0","vsArched":"0","60":"0","vsFixed":"0","61":"0","vsSecure":"0","62":"0","vsPolished":"0","63":"0","vsJointed":"0","64":"0","vsBay":"0","65":"0","UPVCfStyle":"1","66":"1","UPVCbStyle":"1","67":"1","ALUfStyle":"1","68":"1","ALUbStyle":"1","69":"1","drain":"1","70":"1","ventPos":"1","71":"1","ALUProfile":"Alitherm 600","72":"Alitherm 600"}] 

Innerhalb meiner Erfolgsfunktion muss ich in der Lage sein durch alle Ergebnisse in jedem Objekt zu durchlaufen und sie so zu verwenden, wie ich es benötige.

Ich habe viele Antworten gepostet hier ohne Glück versucht, wie zum Beispiel:

for (var j = 0; j < result.length; j++){ 
     var windowid = result[j].Wid); 
     console.log(windowid); 
    } 

Protokolle nicht definiert. Ich habe auch viele Beispiele für in und foreach Schleife ohne Glück versucht. Vielen Dank im Voraus für jede Hilfe.

+0

Versuchen Sie, 'result.length' zu drucken? –

+0

var windowid = Ergebnis [j] .Wid --------------->) <-----------------; – rndus2r

+0

console.log (result.length); logs: 3827. Confused –

Antwort

0

Analysieren Sie das Ergebnis als JSON vor der for-Schleife. Zeile result = JSON.parse(result) hinzufügen. Da der Inhaltstyp-Header nicht auf application/json gesetzt ist, wird Ihr Ergebnis eine Zeichenfolge sein, die als json analysiert werden sollte.

+0

Ich habe beide bereits versucht und das Ergebnis wird protokolliert als: Array [Objekt, Objekt] –

0

Zuerst Sie im JSON-Format zurückkehrt, so eingestellt, dass in der Ajax-Anfrage ...

$.ajax({  
    type: "POST", 
    data: "id="+id, 
    url: "get-quote-data.php", 
    dataType: 'json', 
    cache: false, 
    success: function (result) { 
     console.log(result); 
    } 
}); 

Innerhalb der Erfolgsfunktion, erhalten Sie $ .each Funktion eine Schleife durch Ihre Antwort können ..

.
$.each(result,function(id,value) { 
    value['id']... 
    value['Wid']... 
    etc... 
}); 

Also, alles zusammen setzen ...

$.ajax({  
    type: "POST", 
    data: "id="+id, 
    url: "get-quote-data.php", 
    dataType: 'json', 
    cache: false, 
    success: function (result) { 

     $.each(result,function(id,value) { 
      var windowid = value['Wid']; 
      console.log(windowid); 
     }); 
    } 
}); 

ich hoffe, es

01 hilft
+0

Perfect vielen Dank! Genau das, was ich brauchte. –

+0

Großartig @MartynClinton! Freut mich das zu hören! –

+0

Hey @MartynClinton, stört es dich zu wählen oder die Antwort als Lösung zu markieren? Ich bin neu hier und es wird mir erlauben, mehr Dinge zu tun. Danke im Voraus! –