Разница между php echo и возвратом в терминах вызова ajax jQuery [закрыто]
У меня возникли проблемы с правильной работой функции успеха вызова jQuery Ajax, и мне было указано, что причина в том, что моя функция PHP использовала return $result, когда я должен был использовать echo $result.
Изменение функции PHP, которую вызывал Ajax, с "return $result" на "echo $result" устранило проблему, но почему? Существует множество объяснений относительно разницы между этими двумя (return и echo) с точки зрения PHP-скриптов, но как они отличаются, когда отправка этого значения в вызов Ajax?
4 answers
Ну, вызов ajax считывает ответ с сервера, и этот ответ должен быть представлен в виде некоторого типа читаемых данных, таких как application/json
или text/html
.
Чтобы записать эти данные, вам нужно echo
получить их с сервера с помощью PHP.
Оператор return не записывает данные, он просто возвращает их на уровне сервера.
Вызов Ajax использует ответ на HTTP-запрос. PHP-скрипт генерирует выходные данные не повторением, а повторением.
Ajax вызывает просмотр данных так же, как и мы, он считывает их как строку. Это в основном доступ к другой веб-странице и "получение" результата. "Возврат" PHP возвращает значение только на сервере. Вам нужно фактически вывести данные, чтобы при выполнении вызова Ajax на странице, на которую он смотрит, действительно были записаны данные.
Команда echo
выводит данные в стандартный вывод, это в приложениях веб-браузера, клиент, который запросил данные. В командной строке это выведет данные на консоль.
И команда return
завершает функцию со значением, но ничего не выводит.
Если вы хотите взаимодействовать между функциями PHP , вы должны использовать return
. Но если вы хотите вывести некоторые данные, вы должны использовать echo
.