Я пытаюсь отправить данные из формы в базу данных. Вот форма, которую я использую:
<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 )?
Ответы:
Основное использование
.ajax
будет выглядеть примерно так:HTML:
JQuery:
Примечание: Так как JQuery 1.8
.success()
,.error()
и.complete()
осуждаются в пользу.done()
,.fail()
и.always()
.Примечание: Помните, что приведенный выше фрагмент кода должен быть сделан после того, как DOM будет готов, поэтому вы должны поместить его в
$(document).ready()
обработчик (или использовать$()
сокращение).Совет: Вы можете приковать обработчик обратного вызова , как это:
$.ajax().done().fail().always();
PHP (то есть form.php):
Примечание. Всегда проводите санитарную обработку размещенных данных , чтобы предотвратить инъекции и другой вредоносный код.
Вы также можете использовать сокращение
.post
вместо.ajax
приведенного выше кода JavaScript:Примечание. Приведенный выше код JavaScript предназначен для работы с jQuery 1.8 и более поздними версиями, но он должен работать с предыдущими версиями вплоть до jQuery 1.5.
источник
request
был объявлен как локальный var, и онif (request) request.abort();
никогда не работал.serialize()
будут пропущены.Чтобы сделать Ajax-запрос с использованием jQuery, вы можете сделать это с помощью следующего кода.
HTML:
JavaScript:
Способ 1
Способ 2
.success()
,.error()
И.complete()
обратные вызовы являются устаревшим JQuery 1.8 . Для того, чтобы подготовить свой код для их последующего удаления, использовать.done()
,.fail()
и.always()
вместо этого.MDN: abort()
, Если запрос уже отправлен, этот метод прервет запрос.Итак, мы успешно отправили запрос Ajax, и теперь пришло время собирать данные на сервер.
PHP
Как сделать запрос POST в Ajax вызова (
type: "post"
), мы можем теперь данные захватить с помощью либо$_REQUEST
или$_POST
:Вы также можете увидеть, что вы получаете в запросе POST, просто либо. Кстати, убедитесь, что
$_POST
установлено. В противном случае вы получите ошибку.И вы вставляете значение в базу данных. Убедитесь, что вы сенсибилизируете или экранируете все запросы (независимо от того, сделали ли вы GET или POST) перед выполнением запроса. Лучше всего было бы использовать подготовленные заявления .
И если вы хотите вернуть какие-либо данные обратно на страницу, вы можете сделать это, просто повторив эти данные, как показано ниже.
И тогда вы можете получить это как:
Есть несколько сокращенных методов . Вы можете использовать приведенный ниже код. Это делает ту же самую работу.
источник
dataType
), чтобы вы могли потенциально принять JSON или какой-либо другой формат?Я хотел бы поделиться подробным способом публикации сообщений с помощью PHP + Ajax, а также с ошибками, возвращаемыми при сбое.
Прежде всего, создайте два файла, например
form.php
иprocess.php
.Сначала мы создадим объект,
form
который затем будет отправлен с использованиемjQuery
.ajax()
метода. Остальное будет объяснено в комментариях.form.php
Проверьте форму с помощью проверки на стороне клиента jQuery и передайте данные
process.php
.Теперь мы посмотрим на
process.php
Файлы проекта можно загрузить с http://projects.decodingweb.com/simple_ajax_form.zip .
источник
Вы можете использовать сериализацию. Ниже приведен пример.
источник
$.parseJSON()
это спасатель жизни, спасибо. У меня были проблемы с интерпретацией моего вывода на основе других ответов.HTML :
JavaScript :
источник
Я использую способ, показанный ниже. Он представляет все как файлы.
источник
Если вы хотите отправлять данные с помощью jQuery Ajax, тогда вам не нужны тег формы и кнопка отправки.
Пример:
источник
источник
Обработка ошибок Ajax и загрузчика перед отправкой и после успешной отправки показывает окно загрузки оповещения с примером:
источник
Я использую этот простой однострочный код годами без проблем (для этого требуется jQuery):
Здесь ap () означает страницу Ajax, а af () означает форму Ajax. В форме простой вызов функции af () опубликует форму по URL-адресу и загрузит ответ в нужный элемент HTML.
источник
В вашем php файле введите:
и в вашем файле JS отправьте AJAX с объектом данных
или оставить как есть с формой-отправить. Это необходимо только в том случае, если вы хотите отправить измененный запрос с рассчитанным дополнительным содержимым, а не только с некоторыми данными формы, которые вводит клиент. Например, хэш, метка времени, идентификатор пользователя, идентификатор сеанса и тому подобное.
источник
Пожалуйста, проверьте это. Это полный код запроса Ajax.
источник
Это очень хорошая статья которая содержит все, что вам нужно знать о представлении формы jQuery.
Краткое содержание статьи:
Простая HTML-форма Отправить
HTML:
JavaScript:
HTML Multipart / form-data Форма отправки
Для загрузки файлов на сервер мы можем использовать интерфейс FormData, доступный для XMLHttpRequest2, который создает объект FormData и может быть легко отправлен на сервер с помощью jQuery Ajax.
HTML:
JavaScript:
Надеюсь, это поможет.
источник
С момента появления Fetch API больше нет причин делать это с jQuery Ajax или XMLHttpRequests. Чтобы отправить данные формы в PHP-скрипт в vanilla JavaScript, вы можете сделать следующее:
Вот очень простой пример PHP-скрипта, который берет данные и отправляет электронное письмо:
источник