Ajax - Как использовать возвращенный массив в функции успеха
Привет У меня есть PHP-код, который возвращает массив. Я хочу, чтобы иметь возможность использовать этот массив в моей функции успеха ajax, но я не уверен, как это сделать. Я пробовал следующее, но не повезло.
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];
}
});
Ответы
Ответ 1
Вы должны вернуть данные как JSON с сервера.
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];
}
});
Ответ 2
Небольшая ошибка:
Не: exit($arr);
заменить на: echo json_encode($arr);
Ответ 3
Есть проблема, когда вы хотите отображать, например, data[0]
и data[1]
, это похоже на символ из строки. Он решает добавить header("Content-Type: application/json");
перед тем, как применить echo json_encode($arr)