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

Если я передаю массив из php например
echo array("number"=>5, "str"=>85);
Использую jquery ajax, если предавать ответ без json_encode то приходит пустой массив. Собственно вопрос такой массив обязательно нужно передавать как json или я Как то не так передаю.
  • Вопрос задан
  • 1006 просмотров
Решения вопроса 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).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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