Дополнительно
Пример jQuery Ajax POST с PHP
Я пытаюсь отправить данные из формы в базу данных. Вот форма, которую я использую:
<form name="foo" action="form.php" method="POST" id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
Типичным подходом было бы отправить форму, но это приводит к перенаправлению браузера. Используя jQuery и Ajax, можно ли перехватить все данные формы и отправить их PHP-скрипту (пример, form.php)?
652
14
Базовое использование
.ajax
будет выглядеть примерно так:HTML:
jQuery:
Примечание: Начиная с jQuery 1.8,
.success()
,.error()
и.complete()
устарели в пользу.done()
,.fail()
и.always()
..Примечание: Помните, что приведенный выше фрагмент должен быть выполнен после DOM ready, поэтому вы должны поместить его внутрь обработчика
$(document).ready()
(или использовать сокращение$()
).Совет: Вы можете связать обработчики обратного вызова следующим образом:
$.ajax().done().fail().always();
.PHP (то есть, form.php):.
Примечание: Всегда санируйте публикуемые данные, чтобы предотвратить инъекции и другой вредоносный код.
Вы также можете использовать сокращение
.post
вместо.ajax
в приведенном выше коде JavaScript:Примечание: Приведенный выше код JavaScript предназначен для работы с jQuery 1.8 и более поздними версиями, но он должен работать с предыдущими версиями вплоть до jQuery 1.5..
Чтобы сделать Ajax-запрос с помощью jQuery, можно воспользоваться следующим кодом.
HTML:
JavaScript:
Метод 1
Метод 2
Обратные вызовы
.success()
,.error()
и.complete()
устарели с версии jQuery 1.8. Чтобы подготовить свой код к их удалению, используйте.done()
,.fail()
и.always()
вместо них.MDN: abort()
. Если запрос уже был отправлен, этот метод прервет запрос.Итак, мы успешно отправили Ajax-запрос, и теперь пришло время получить данные на сервер.
PHP
Поскольку в Ajax-вызове мы делаем POST-запрос (
type: "post"
), теперь мы можем получить данные, используя$_REQUEST
или$_POST
:Вы также можете посмотреть, что вы получаете в POST-запросе, просто используя любой из них. BTW, убедитесь, что
$_POST
установлен. В противном случае вы получите ошибку.И вы вставляете значение в базу данных. Убедитесь, что вы чувствительны или устраняете Все запросы (будь то GET или POST) должным образом перед выполнением запроса. Лучше всего использовать подготовленные операторы.
А если вы хотите вернуть какие-либо данные обратно на страницу, вы можете сделать это, просто отправив их эхом, как показано ниже.
И затем вы можете получить его как:
Существует несколько сокращенных методов. Вы можете использовать приведенный ниже код. Он выполняет ту же работу.
Я хотел бы поделиться подробным способом публикации с помощью PHP + Ajax вместе с ошибками, возникающими при сбое.
Прежде всего, создайте два файла, например
form.php
и "process.php `.Сначала мы создадим "форму", которая затем будет отправлена с помощью метода jQuery.ajax(). Остальное будет объяснено в комментариях.
form.php
Проверьте форму с помощью проверки на стороне клиента jQuery и передайте данные в
process.php
.Теперь мы взглянем на
process.php
Файлы проекта можно загрузить с http://projects.decodingweb.com/simple_ajax_form.zip .
Вы можете использовать сериализацию. Ниже приведен пример.
В формате HTML:
Язык JavaScript:
Я использую так, как показано ниже. Он подает все как файлы.
Если вы хотите отправить данные с помощью jQuery Аякс, то нет необходимости в теге форма и кнопка "Отправить"
Пример:
Обработка Аякс ошибки и загрузчик до отправки и после отправки успех показывает предупреждение загрузке окно с примером:
Я использую этот простой код в течение многих лет без проблем (это требует jQuery):
Здесь АП() означает страницу AJAX и АФ() означает форма AJAX. В такой форме, просто позвонив АФ() функция будет размещать формы на URL-адрес и загрузить ответ на нужный HTML-элемент.
Пожалуйста, проверьте это. Это полный запрос AJAX-код.
С момента введения выборка по API нет никакой причины делать это с помощью jQuery AJAX и XMLHttpRequest-запросы. Для отправки данных формы на php-скрипт в ванили на JavaScript, вы можете сделать следующее:
в
в
Вот очень простой пример PHP-скрипта, который получает данные и отправляет по электронной почте:
Это очень хорошая статья, который содержит все, что нужно знать о jQuery отправки формы.
Краткое изложение статьи:
Простая HTML-форма отправки
HTML-код:
На JavaScript:
HTML-код multipart/данные формы форма отправки
Чтобы загрузить файлы на сервер, мы можем использовать интерфейс виде FormData доступен для XMLHttpRequest2, который создает объект FormData и могут быть отправлены легко сервер с помощью jQuery Аякс.
HTML-код:
На JavaScript:
Я надеюсь, что это помогает.
В вашем php-файл, введите:
и в свой JS файл отправить Ajax с данными объекта
или оставить его как есть с форме-отправить. Вам нужно это только, если вы хотите отправить измененную запрос с вычисляемыми дополнительный контент и не только определенной формы-данные, введенные клиентом. Например, хэш, метка, идентификатор пользователя, sessionId и тому подобное.