it-swarm.com.de

Ajax - Verwendung eines zurückgegebenen Arrays in einer Erfolgsfunktion

Hallo, ich habe einen PHP-Code, der ein Array zurückgibt. Ich möchte dieses Array in meiner Ajax-Erfolgsfunktion verwenden können, aber ich bin mir nicht sicher, wie ich dies tun soll. Ich habe folgendes versucht, aber kein Glück.

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];
    }
});
15
Matt9Atkins

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

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];
    }
});
46
Hugo Tunius

Ein kleiner Fehler:

Nicht: exit($arr);

ersetzen durch: echo json_encode($arr);

9
robby

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

Hier ist die Lösung 

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

header("Content-Type: application/json");

echo json_encode($arr);

exit();

anstatt 

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

exit($arr);
0
Waqas Qayum