Как отправить форму без перезагрузки страницы (AJAX)
В этой статье мы расскажем как отправить форму в фоновом режиме без перезагрузки страницы(AJAX), с помощью jquery, php. В результате работы скрипта, сервер будет отправлять данные в формате JSON и клиент будет получать данные в этом же формате.
Web-hosting rating: 8 out of 10 with 325 ratings

Что такое AJAX

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

Технология Ajax стала неотъемлемой частью WEB 2.0 и в настоящий момент, успешные веб-сайты стремятся создать удобство для пользователей. Более того, технология Ajax позволяет увеличить скорость работы вашего сайта, за счет того, что пользователю для обновления некоторых элементов вашего сайта не нужно перезагружать всю страницу.

 

Реализация отправки формы без перезагрузки страницы

 

Наш демонстрационный проект будет состоять из трех файлов:

index.php - это главная страница с формой
ajax.js - это javascript файл с логикой ajax обработки формы
action_ajax_form.php - это серверная часть нашего проекта, обрабатывает данные полученные из формы и возвращает результат в формате JSON

 

Создадим первый файл нашего AJAX проекта под названием index.php с таким содержимым:

 

Мы подключили библиотеку Jquery и наш javascript файл отвечающий за взаимодействие с кнопкой отправки форми, с файлом action_ajax_form.php. 

Обратите внимание, что метод отправки формы у нас POST, задан id="ajax_form" и action="". Также после формы мы добавили div c id=result_form. Именно в этот div мы будем выводить результат обработки формы.

 

Также нам нужно создать второй файл - ajax.js

 

В файле ajax.js есть два метода: $("#btn").click и sendAjaxForm. Первый метод - это слушатель событий кнопки. То есть, когда мы нажимаем на кнопку Отправить, слушатель срабатывает и вызывает второй метод sendAjaxForm. 

В метод sendAjaxForm(result_form, ajax_form, url) передаются поля: result_form - это div в который будут рендерится данные, ajax_form - это id формы отправки сообщения и url - это местоположение файла action_ajax_form.php который отвечает за серверную часть (обработка формы).

 

И третий файл под названием action_ajax_form.php

 

action_ajax_form.php - обработчик формы на стороне сервера. Для примера, мы делаем проверку: Если существуют переменные в POST запросе name и phonenumber, тогда мы формируем массив $result для JSON ответа от сервера. Затем, массив $result мы переводим в JSON объект, чтобы клиент ajax.js смог корректно получить данные в формате JSON. 

 

Выводы

Как вы видите, реализовать AJAX отправку данных формы, без перезагрузки страницы очень просто. Скачать исходный код AJAX формы, вы можете по ссылке. Файлы загрузите на ваш локальный сервер или хостинг, распакуйте и сложите все файлы в один каталог сервера.

Если есть вопросы, относительно этой статьи, оставляйте свои комментарии и мы попробуем помочь разобраться, если что-то не заработает.





Читайте также


Что такое NodeJS и npm?

XAMPP - как установить и настроить на Mac (Mojave, Sierra)

Как самостоятельно изучить веб-программирование

Взломали Cкайп, что делать?

Что такое реферальный спам в Google Analytics

Постраничная ленивая загрузка (lazy load) постов

Как стать профессиональным веб-разработчиком

Методы setTimeout и setInterval в Javascript

Реализация Lazy Load на Jquery

Три полезных CSS свойства для работы с изображениями

Массивы в Javascript

Что такое TypeScript

CSS3 - Эффект вращения

Sublime Text 3 - удобный редактор кода для веб-разработчиков

Установка и настройка веб-сервера для сайта в Ubuntu

Полезные приложения для веб-разработчиков в Google Chrome

Модальное окно на Jquery

GIT команды: Быстрый старт для новичков

Что такое конструктор в объектно-ориентированном программировании

Что такое объектно-ориентированное программирование

Как быстро создать сайт и привлечь поисковый трафик

Bitbucket: Крутой облачный GIT репозиторий

Javascript: Классы в Javascript

Что такое веб-хостинг и как выбрать хостинг для сайта

SQL запросы: Основы администрирования MySQL

Команды Linux: оболочка BASH

Joomla CMS: Преимущества и недостатки

Качественный сайт: семь ключевых свойств



Все материалы с сайта wh-db.com и ru.wh-db.com защищены авторским правом. Копирование, публикация, продажа и распространение материала строго запрещены.



Комментарии





Иван Зайцев ответить
Можно ли указывать не путь к файлу (action_ajax_form.php), а например index.php?do=form ?
Александр ответить
Скажите пожалуйста. Возможно ли полученные данные передавать не в result_form, а сразу присвоить полученные значения элементов массива нужным мне html элементам на странице. Чтобы не делать двойную работу и не парсить ответ из элемента result_form
Александр ответить
Все сам разобрался. Затупил что-то сначала.
Anonymous ответить
не работает
Артём ответить
Ничего не работает! Пробывал по разному и ничего
Спасибо за статью! Все получилось с первого раза!
Виталий ответить
Спасибо, что научили делать jquery ajax без перезагрузки страницы для формы. Все просто и понятно. Мне очень нравятся ваши примеры по программированию!
Ajax отправку без перезагрузки страницы можно реализовать и на обычном javascript, зачем для этого юзать jquery?
Виталий85 ответить
Спасибо за подробнейшую статью! Все заработало без дополнительный телодвижений! Как записаться на ваш курс программирования?
Спасибо!
Александр ответить
Проблема, что всегда пишет, что данные не отправлены у меня. Как исправить?
JuliaaExtiX ответить
Thanks for an advice!
Максим ответить
result = jQuery.parseJSON(response); - У меня ругается, ному понять почему( "Unexpected token C in JSON at position 0 at Function.parse [as parseJSON] (<anonymous>)" Помогите добрые люди.
JamesPiree ответить
Спасибо, все доступно и понятно!
grummiKr ответить
Креативненько!
outyrusj ответить
Good thinks
RobertMab ответить
Спасибо, очень хорошо!
GeorgEnduh ответить
Все отлично
Renatgof ответить
Все понравилось, спасибо!
Zharlessam ответить
Отличная статья,спасибо!
TyzonAmulp ответить
Отлично!
Zharlessam ответить
Попробовал получилось. Спасибо вам!
Zichardcon ответить
Очень хорошо написали. Полезно и доступно!

Оставить комментарий









Поиск хостинга



HDD (mb)
8000
Максимальная цена за месяц, (RUB)
700

Дополнительно







Новые статьи

















ВСЕ СТАТЬИ


Обзоры хостинга















Категории


24x7 Support Web Hosting
Angular JS Web Hosting
Apache Web Hosting
ASP.NET Web Hosting
CPanel Web Hosting
Cron Web Hosting
DirectAdmin Web Hosting
Django Web Hosting
EMail Web Hosting
FireBird Web Hosting
Free Domain Web Hosting
GIT Web Hosting
Jabber Web Hosting
Java Web Hosting
JavaScript Web Hosting
JBoss Web Hosting
JSP Web Hosting
Linux Web Hosting
MERCURIAL Web Hosting
MongoDB Web Hosting
MySQL Web Hosting
NGinx Web Hosting
NodeJS Web Hosting
Perl Web Hosting
PHP Web Hosting
PostgreSQL Web Hosting
Python Web Hosting
Ruby Web Hosting
Russian Web Hosting
Servlets Web Hosting
Spring Web Hosting
SQLite Web Hosting
SSH Web Hosting
SSL Web Hosting
Stream Web Hosting
SVN Web Hosting
TomCat Web Hosting
Unlimited HDD Space Web Hosting
Unlimited Sites Web Hosting
Unlimited Traffic Web Hosting
USA Web Hosting
VmWare Web Hosting
Windows Web Hosting