Ajax RDmailform – форма отправки сообщений без перезагрузки страницы

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Предлагаю вашему вниманию очень функциональную ajax форму обратной связи, за счет которой вы сможете не только легко и красиво отправлять письма вашим пользователям без перезагрузки страницы, но и прикреплять к ним файлы в неограниченном количестве.

Код формы базируется на двух js: jquery.form.min.js – для ajax отправки и jquery.rd-mailform.min.js – валидация полей + календарь (связана с jquery.form.min.js). Данную форму я нашел на западном сайте, она настолько мне понравилось, что пришлось потратить день, чтобы понять принцип ее работа, а также создать удобный пакет установки.

Данную форму я перевел на русский язык начиная от формата даты, заканчивая сообщениями со статусами отправки.

Скриншоты:

21

Особенности формы:
– может через ajax передовать файлы в любом количестве на почту
– вместо checbox и радиокнопок используются select-ы
– можно задавать иконки на каждое поле, по умолчанию карандаш
– можно создавать любое количество таких форм
– есть валидация полей
– красивые статусы ошибки/отправки формы
– из главного минуса – нет мультиселектов (только если обрубить select в jquery.rd-mailform.min.js)
– адаптивный дизайн (форма сама подстраивается под размер экрана с viewport)
– если поле создать с типом type=”date”, то к нему автоматически подгрузится календарь

Установка формы

В скачанном примере просто скопировать форму с классом rd-mailform. В action поставьте ссылку на исполняющий php файл.

Добавление поля на примере input (главное, чтобы различались name полей):
<div class=”form-group”>
<label data-add-placeholder data-add-icon>
<input placeholder=”Ваше имя” type=”text” name=”name” data-constraints=”@NotEmpty @LettersOnly”/>
</label>
</div>

В label:
data-add-placeholder – для эффекта исчезновения placeholder (при клике)
data-add-icon – добавляет иконку (font-awesome) для поля в зависимости от ИМЕНИ поля. (В этом случае всегда должен быть type=”text”).

В input:
data-constraints=”@SelectRequired” – условие перед отправкой поля (обязательные поля или формат записи). Возможные значения внизу.

Доступные иконки:
Карандаш (по умолчанию): name=”msg*”,
ФИО: name=”name*”, Почта: name=”email*”,
Телефон: name=”phone*”,
Дата: name=”date*”,
Люди: name=”guests*”
Новые иконки можно добавить в rd-mailform.css (1294 строка)

Форматы полей и обязательные поля:
@LettersOnly‘: {message: ‘Пожалуйста, используйте только буквы!’},
@NumbersOnly‘: {message: ‘Пожалуйста, используйте только цифры!’},
@NotEmpty‘: {message: ‘Поле не должно быть пустым!’},
@Email‘: {message: ‘Введите верный адрес электронной почты!’},
@Phone‘: {message: ‘Введите правильный номер телефона!’},
@Date‘: {message: ‘Используйте MM.DD.YYYY формат!’},
@SelectRequired‘: {message: ‘Пожалуйста, выберите вариант!’}

Статусы отправки – что должен возвращать php обработчик, после успешной/не успешной отправки сообщения:
MF000‘: ‘Отправлено!’,
MF001‘: ‘Получатель не устанавлен!’,
MF002‘: ‘Форма не будет работать локально!’,
MF003‘: ‘Пожалуйста, заполните поле email в форме!’,
MF004‘: ‘Пожалуйста, определите тип Вашей формы!’,
MF254‘: ‘Что-то не сработало в функции PHPMailer!’,
MF255‘: ‘Произошла ошибка отправки формы!’

Статус организовать очень просто, например, если в mail.php у вас форма отправилась успешно, то пишите: echo ‘MF000’;

В php обработчик вся информация передается методом serialize(), поэтому там могут быть и файлы $_FILES.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии