Вывести массив JSON после AJAX запроса
Вот JS
$(".btn").on("click", function(e) {
e.preventDefault();
$.ajax({
url: "mail.php",
method: 'post',
data: {
index: "1"
},
success: function (response) {
console.log(response);
},
error: function(){
alert('Ошибка при отправке');
}
});
Вот PHP из mail.php
if(isset($_POST['index'])) {
$index = strip_tags($_POST['index']);
if($index == "1") {
$name = "Den";
$age = "30";
}
}
Как в переменную response передать данные $name и $age в виде JSON массива?
Ответы (3 шт):
Автор решения: rusgeli
→ Ссылка
Создаете ассоциативный массив с вашими данными, кодируете в json и выводите.
Пример:
if(isset($_POST['index'])) {
$index = strip_tags($_POST['index']);
if($index == "1") {
$res = array(
'name' => 'Den',
'age' => '30'
);
echo json_encode($res);
die();
}
}
Автор решения: Алексей Шиманский
→ Ссылка
Использовать json_encode для преобразования массива в json. А отдачей в output будет заниматься echo
echo json_encode(['name' => $name, 'age' => $age]);
exit();
Автор решения: Антон Краско
→ Ссылка
Дополнительно рекомендовал бы передавать флаг JSON_UNESCAPED_UNICODE, если нужно не кодировать многобайтовые символы Unicode
echo json_encode($res, JSON_UNESCAPED_UNICODE);