2016-07-21 6 views
1

Ich hole ein Array von einem MySQL-Ergebnis in eine Array-Variable. Ich kann erfolgreich eine einfache PHP-Echo-Zeile in dem Javascript unten verwenden, um das erste $ -Zeilenelement zu erfassen, aber ich möchte json_encode verwenden, um das gesamte Array auf einmal zu erhalten.Übergabe von Array-Daten von PHP nach Javascript

Wenn ich dies tun und versuchen, eine JavaScript-Variable auf das erste Array-Element zu setzen, geht etwas schief und sogar die einzelne var-Methode funktioniert nicht mehr.

<?php 
. 
. 
. 
    while($row = $result->fetch_array(MYSQLI_NUM)) { 
     $row1 = $row[0]; 
    }  
?> 

<script type="text/javascript"> 
    var RowArray = <?php echo json_encode($row); ?>; 
    var RA1 = RowArray[0]; 
    window.alert(RA1); 

    var Row1 = '<?php echo $row1; ?>';  
    window.alert(Row1);  
</script> 
+0

Wie wäre es mit '$ allRows = $ result-> fetch_all (MYSQLI_NUM);'? Wenn nicht, wie sehen die Daten aus und wie sollen sie in JavaScript dargestellt werden? – Phil

+0

Wenn eine der Zeilen aus Nicht-UTF8-Sonderzeichen besteht. json_encode kann null zurückgeben. Und wird fehlschlagen JS auf var RowArray =; (Da PHP nicht null zurückgibt, aber nichts, wenn es in eine Zeichenfolge umgewandelt wird) (Der Fehler wird unerwartet sein;) – DiceXQ

+0

Der fetch_all hat funktioniert. Ich bin mir nicht ganz sicher, warum mein fetch_array fehlgeschlagen ist. Vielleicht weil die Schleife und das Skript-Timing vom Webserver gehandhabt werden? Aber ich freue mich für eine praktische Lösung. Vielen Dank! – Dweeda

Antwort

0

ein Array Machen Sie alle Datensätze enthält:

$rows = []; 
while ($row = $result->fetch_array(MYSQLI_NUM)) 
{ 
    // do custom modifications to $row if neededed 
    $rows[] = $row; // push to array 
} 

Oder einfach:

$rows = $result->fetch_all(MYSQLI_NUM); 

Und dann verwenden json_encode() mit $rows.

+0

Der fetch_all hat funktioniert. Danke euch beiden. – Dweeda

Verwandte Themen