Ajax - How to use a returned array in a success function
78,703
Solution 1
You should return the data as JSON from the server.
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];
}
});
Solution 2
A small mistake:
Not: exit($arr);
replace with: echo json_encode($arr);
Solution 3
There a Problem , when you want display for example data[0]
and data[1]
, it seems like a character from string. It Solves adding header("Content-Type: application/json");
before apply echo json_encode($arr)
Author by
M9A
Updated on November 29, 2020Comments
-
M9A over 3 years
Hi I have a php code that returns an array. I want to be able to use this array in my ajax success function but I'm not sure how to go about doing this. I have tried the following, but no luck.
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]; } });
-
Aaron Liu over 8 yearsI did the same thing in your way but it turns out my data[x] is actually undefined. I can echo it in PHP with no problems...
-
RWolfe almost 8 yearsIs there a way to parse an array within an array?