Задать вопрос

Jquery ajax возвращает ассоциативный массив только в json?

Если я передаю массив из php например
echo array("number"=>5, "str"=>85);
Использую jquery ajax, если предавать ответ без json_encode то приходит пустой массив. Собственно вопрос такой массив обязательно нужно передавать как json или я Как то не так передаю.
  • Вопрос задан
  • 1026 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Javascript и PHP разные языки, нельзя передать массив "как есть" из PHP в JS, разные представления и организации массивов. То ли дело строки. Необходимо строковое представление массива в унифицированном формате, которое сможет с помощью спец. функций (типа json_decode) уже определенный язык распознать и сформировать массив. Существуют несколько форматов/протоколов/способов, например SOAP или JSON. Так что без json - никак.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
pxz
@pxz
✔ Совет: Вам помогли? Отметьте ответы решением.
Во-первых, используйте json_encode.
Во-вторых, нельзя написать echo array(...), потому что нельзя преобразовать массив в строку, это вызовет Notice: Array to string conversion.

Если хотите просто вывести массив графически, как он есть, используйте рекурсивный вывод: print_r(array("number"=>5, "str"=>85));

Также можете из php отдавать XML, jQuery AJAX понимает XML, если указать тип возвращаемых данных (см. мануал по $.ajax).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 16:42
2000 руб./за проект
18 дек. 2024, в 16:33
2000 руб./в час
18 дек. 2024, в 16:06
5000 руб./за проект