Разница между php echo и возвратом в терминах вызова ajax jQuery [закрыто]


У меня возникли проблемы с правильной работой функции успеха вызова jQuery Ajax, и мне было указано, что причина в том, что моя функция PHP использовала return $result, когда я должен был использовать echo $result.

Изменение функции PHP, которую вызывал Ajax, с "return $result" на "echo $result" устранило проблему, но почему? Существует множество объяснений относительно разницы между этими двумя (return и echo) с точки зрения PHP-скриптов, но как они отличаются, когда отправка этого значения в вызов Ajax?

Author: marky, 2012-04-11

4 answers

Ну, вызов ajax считывает ответ с сервера, и этот ответ должен быть представлен в виде некоторого типа читаемых данных, таких как application/json или text/html.

Чтобы записать эти данные, вам нужно echo получить их с сервера с помощью PHP.

Оператор return не записывает данные, он просто возвращает их на уровне сервера.

 21
Author: Daniel Ribeiro, 2012-04-11 13:45:09

Вызов Ajax использует ответ на HTTP-запрос. PHP-скрипт генерирует выходные данные не повторением, а повторением.

 8
Author: rael_kid, 2012-04-11 13:44:05

Ajax вызывает просмотр данных так же, как и мы, он считывает их как строку. Это в основном доступ к другой веб-странице и "получение" результата. "Возврат" PHP возвращает значение только на сервере. Вам нужно фактически вывести данные, чтобы при выполнении вызова Ajax на странице, на которую он смотрит, действительно были записаны данные.

 5
Author: Josh Toth, 2012-04-11 13:48:51

Команда echo выводит данные в стандартный вывод, это в приложениях веб-браузера, клиент, который запросил данные. В командной строке это выведет данные на консоль. И команда return завершает функцию со значением, но ничего не выводит.

Если вы хотите взаимодействовать между функциями PHP , вы должны использовать return. Но если вы хотите вывести некоторые данные, вы должны использовать echo.

 3
Author: MatuDuke, 2012-04-11 13:48:20