@Kifw

Ajax. Как получить массив из обработчика?

Есть файл js
function auth(){ 
	var msg=$('.form_auth').serialize();
	$.ajax({
		type:'POST',
		url:"ajax/handler.php",
		data:msg,
		cache:false,
		success:function(data){
			$("#error").html(data);
		}
	});
}

Как я понимаю js получает от обработчика то, что выводится в echo или print_r.
Можно ли вернуть массив, что то по типу return?
  • Вопрос задан
  • 5697 просмотров
Решения вопроса 1
Ahen
@Ahen
Универсальный дилетант
Как же сложно изъясняетесь.

Получает тело документа.
Как я понимаю js получает от обработчика то, что выводится в echo или print_r.


Вы спрашиваете, как отдать php обработчиком json data?
Можно ли вернуть массив, что то по типу return?


Допустим мы имеем массив
$arr = [
"name" => "vasya", 
"age" => "23"
];


Используя функцию json_encode выводим этот массив в виде json.
echo json_encode($arr);

P.S. Если я так и не понял вопроса, то оставьте комментарий с разъяснениями.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@entermix
Обработчик на стороне сервера может возвращать только строку, но Вы можете использовать json_encode, чтобы конвертировать PHP массив в JSON-представление, а затем обработать его на стороне JS

die(json_encode($array));
Ответ написан
Комментировать
@pasterh
$arr = ["name" => "vasya", "age" => "23"];
$arr2=['конфета' ,'шоколад', 'печеньки'];
//вкладываем массивы в массив который отправим  добавив к ним ключи  через ajax 
$res['ansver1']=$arr;
$res['ansver2']=$arr2;
//кодируем в json  и выводим
echo exit(json_encode($res));


function auth(){ 
  var msg=$('.form_auth').serialize();
  $.ajax({
    type:'POST',
    url:"ajax/handler.php",
/* нужно указать тип данных json */
    dataType: 'json',
    data:msg,
    cache:false,
    success:function(data){
/*выводим и обрабатываем массив1 добавив к дате ключ массива*/
console.log(data.ansver1);
/*выводим и обрабатывем массив 2*/
console.log(data.ansver2);
      $("#error").html(data);
    }
  });
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы