web-dev-qa-db-fra.com

Ajax - Comment utiliser un tableau retourné dans une fonction de réussite

Bonjour, j'ai un code php qui retourne un tableau. Je veux pouvoir utiliser ce tableau dans ma fonction de succès ajax mais je ne sais pas comment faire pour le faire. J'ai essayé ce qui suit, mais pas de chance.

code php:

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

exit($arr);

code js:

$.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

Vous devez renvoyer les données sous forme de code JSON à partir du serveur.

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

Une petite erreur:

Non: exit($arr);

remplacer par: echo json_encode($arr);

9
robby

Il y a un problème, lorsque vous souhaitez afficher par exemple data[0] et data[1], cela ressemble à un caractère de chaîne. Cela résout l'ajout de header("Content-Type: application/json"); avant d'appliquer echo json_encode($arr)

4

Voici la solution 

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

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

echo json_encode($arr);

exit();

au lieu de 

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

exit($arr);
0
Waqas Qayum