2013-10-21 9 views
14

Hallo Ich habe einen PHP-Code, der ein Array zurückgibt. Ich möchte in der Lage sein, dieses Array in meiner Ajax-Erfolgsfunktion zu verwenden, aber ich bin mir nicht sicher, wie ich das machen soll. Ich habe folgendes versucht, aber kein Glück.Ajax - Wie man ein zurückgegebenes Array in einer Erfolgsfunktion verwendet

PHP-Code:

$arr = array(); 
$arr[0] = "Mark Reed" 
$arr[1] = "34"; 
$arr[2] = "Australia"; 

exit($arr); 

js Code:

$.ajax({ 
    type: "POST", 
    url: "/returndetails.php", 
    data: 'id=' + userid, 
    success: function (data) { 
     document.getElementById("name").innerHTML = data[0]; 
     document.getElementById("age").innerHTML = data[1]; 
     document.getElementById("location").innerHTML = data[2]; 
    } 
}); 
+0

Versuchen Sie '

Antwort

41

Sie sollten die Daten als JSON vom Server zurück.

PHP

$arr = array(); 
$arr[0] = "Mark Reed"; 
$arr[1] = "34"; 
$arr[2] = "Australia"; 

echo json_encode($arr); 
exit(); 

JS

$.ajax({ 
    type: "POST", 
    url: "/returndetails.php", 
    data: 'id=' + userid, 
    dataType: "json", // Set the data type so jQuery can parse it for you 
    success: function (data) { 
     document.getElementById("name").innerHTML = data[0]; 
     document.getElementById("age").innerHTML = data[1]; 
     document.getElementById("location").innerHTML = data[2]; 
    } 
}); 
+0

Ich habe die gleiche Sache in Dein Weg aber es stellt sich heraus, dass meine Daten [x] eigentlich undefiniert sind. Ich kann es in PHP ohne Probleme echo ... –

+0

Gibt es eine Möglichkeit, ein Array innerhalb eines Arrays zu analysieren? – Jdoonan

8

Ein kleiner Fehler:

Nicht: exit($arr);

mit

ersetzen: echo json_encode($arr);

3

Es gibt ein Problem, wenn Sie beispielsweise data[0] und anzeigen möchten, scheint es wie ein Zeichen aus Zeichenfolge. Es löst das Hinzufügen von header("Content-Type: application/json"); vor der Anwendung echo json_encode($arr)