Jquery форма обратной связи: Форма обратной связи на PHP и Ajax
Содержание
Php форма обратной связи без перезагрузки
Всем — привет. Сегодня решил взяться за переработку статьи об ajax форме, которая открывалась в модальном окне. Статья достаточно популярна, но имела некоторые проблемы. Дело в том, что после отправки данных, выводилось сообщение об успешной отправке и не позволяло больше отправлять письма до перезагрузки страницы. Многие из вас спрашивали, как сделать так, чтобы сообщение не заменяло форму и позволяло повторно отправлять письма. В этой статье мы это исправим и не только.
Еще, у прошлой статьи был, наверное, недостаток в том, что сложно было подключить несколько форм, а именно, нужно было дублировать скрипт, обрабатывающий форму, что не очень красиво. В этой статье поправим и этот момент. Кроме того, форма будет работать и без модального окна.
Ах да, приведу в порядок айдишники и классы, чтобы легче понималось что и зачем. Изменю дизайн формы, так интереснее. В одной из следующих статей, возможно, подключим к этой форме reCapthсa от Google, и настроем цель «Событие», при успешной отправке, так что готовится целый цикл статей.
Как сделать форму обратной связи в модальном окне
Давайте приступим. Так как модальное окно будет вызываться при помощи jQuery плагина Remodal, то перед закрывающимся тегом
Обратная связь на сайте, перезагружающая страницу после каждой успешной отправки — мелочь, которая легко портит впечатление о сайте. Качественный сайт подобных «дырок» содержать не должен, потому разберём простой пример формы с асинхронной отправкой данных (без перезагрузки страницы) через AJax и JQuery.
Отправка формы без перезагрузки страницы:
- не дезориентирует пользователя ненужной перезагрузкой страницы или редиректом,
- позволяет ему продолжить навигацию по текущей странице,
- снижает нагрузку на сервер,
- работает приятней и «плавнее».
Как отправить форму без перезагрузки всей страницы? Просто отправлять нужные данные на сервер отдельными запросами, не затрагивая html.
AJAX + PHP + JQuery
Обычно «фидбэк» состоит из HTML-разметки, простенького скрипта, отправляющего данные на сервер и PHP-обработчика этих данных. В случае с фоновой отправки нам понадобится настроить ассинхронную отправку данных к обработчику. Самая простая связка для форм без перезагрузки страницы это PHP + Ajax.
Итак, чтобы отправить форму без перезагрузки дополнительно понадобится:
- ajax-запрос — функция JavaScript, делающая асинхронную отправку введённых в форму данных к обработчику.
- PHP-обработчик на сервере, который асинхронно обрабатывает переданные ему Ajax’ом данные. После обработки посылает скрипту ответ с результатом, Вам — заявку.
- JQuery — библиотека для работы с JavaScript. При создании ajax-формы удобнее пользоваться ей, как и при работе с JS во многих других случаях.
Функцию Ajax можно использовать не только создания форм, но и для других задач, например для динамической подгрузки новостей на странице.
Готовая схема выглядит так:
Пользователь нажатием кнопки отправляет данные
файл JS отправляет их в PHP через Ajax, функцию JQuery
обработчик.PHP проверяет данные и возвращает пользователю через тот же скрипт сообщение об ошибке или успехе
в первом случае владелец сайта также получает готовую заявку.
Если необходимо исключить вероятность повторной отправки формы, ее можно скрыть.
Инструкция по созданию формы без перезагрузки
Прежде всего подключаем JQuery — вставляем строку в конце head сайта (перед тегом ).
Делаем простую форму (в тегах закрыты комментарии к коду, их желательно удалить):
Если вывод формы нужен на одной странице, просто вставляем в код . Если вывод нужен по всему сайту или на многих страницах — вышеописанный код вставляется в шаблон.
Собираем Java-Script. Его, можно добавить вместе с HTML кодом выше или загрузить отдельным файлом без первой или отдельной строки.
Обработчик, в JS элементе выше мы уже назвали его formx.php:
Файл formx.php закидываем в корневой каталог сайта (или прописываем соответствующий путь в url: нашего скрипта. JS-код размещается либо в head страницы, либо вместе с html.
Как видите, всё довольно просто — сделав всё в точности по инструкции, Вы получите простую, но рабочую форму на JQuery без перезагрузки страницы. Если что-то не получилось — задавайте вопросы в комментариях ниже, мы поможем.
Асинхронная отправка — далеко не всё что потребуется сделать, если Вам нужна крутая и красивая форма без перезагрузки страницы. Обязательно придётся подключать стили оформления, настраивать скрытие отправленной формы, показа сообщений об успехе/отказе. Не говоря уже о валидации полей, масках полей, интеграциях с CRM, отправке достижения целей в метрику и настройке капчи.
Зато всё это делается в нашем конструкторе форм буквально в пару кликов и совершенно бесплатно (да, бывает и так).
Я много видел разных мудреных реализаций форм обратной связи в Интернете и думаю, что даже заядлый программист не сразу разберется в работе такого кода. А зачем, собственно говоря, усложнять работу, если все можно сделать как никогда просто, не так ли?
Сегодня я хотел бы показать самую простую и на 100% рабочую реализацию формы обратной связи без перезагрузки страницы с использованием технологии AJAX (jQuery) и обработки/отправки данных на PHP.
Под простотой я подразумеваю наличие лишь текстовых полей. По желанию, вы можете внедрить чекбоксы, селекты, прикрепление файлов и даже свою капчу.
Технология AJAX, если вы еще не знаете, позволяет без перезагрузки страницы передать значения в PHP-скрипт (и не только), где, уже приняв эти данные, можно произвести необходимые операции.
Если вы не сильно разбираетесь в сайтостроении или только начали освоение этой темы и нуждаетесь в добавлении одного из перечисленный функционалов – пишите об этом в комментариях, постараюсь помочь.
Простой пример формы обратной связи без перезагрузки страницы
Поскольку для отправки формы мы будем использовать PHP, то не стоит делать акцент на том, что на вашем хостинге должна быть его поддержка.
1. Первым делом сверстаем форму с нашими полями. CSS-стили мы упустим, так как сейчас нам это не так важно. В качестве полей сделаем «Имя», «E-mail» и поле для ввода сообщения:
Обратите внимание на элемент с классом «result» – в него мы будем выводить сообщения об ошибках или успешном отправлении сообщения.
2. Далее пишем скрипт, который соберет все данные с формы и отправит их в наш PHP-обработчик:
Скрипт вставляем перед закрывающим тегом
Форма обратной связи на PHP и jQuery с использованием Ajax
- Главная
- ->
- Материалы
- ->
- Форма обратной связи на PHP и jQuery с использованием Ajax
Reg.ru: домены и хостинг
Крупнейший регистратор и хостинг-провайдер в России.
Более 2 миллионов доменных имен на обслуживании.
Продвижение, почта для домена, решения для бизнеса.
Более 700 тыс. клиентов по всему миру уже сделали свой выбор.
Перейти на сайт->
Бесплатный Курс «Практика HTML5 и CSS3»
Освойте бесплатно пошаговый видеокурс
по основам адаптивной верстки
на HTML5 и CSS3 с полного нуля.
Начать->
Фреймворк Bootstrap: быстрая адаптивная вёрстка
Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.
Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.
Верстайте на заказ и получайте деньги.
Получить в подарок->
Бесплатный курс «Сайт на WordPress»
Хотите освоить CMS WordPress?
Получите уроки по дизайну и верстке сайта на WordPress.
Научитесь работать с темами и нарезать макет.
Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!
Получить в подарок->
*Наведите курсор мыши для приостановки прокрутки.
Назад
Вперед
Форма обратной связи на PHP и jQuery с использованием Ajax
Практически на каждом сайте есть форма обратной связи. Формы обратной связи используются как на огромных порталах, так и на сайтах-визитках, состоящих буквально из нескольких страниц.
В данном видеоуроке мы разберем установку и настройку специального скрипта формы обратной связи, который работает на PHP и jQuery с использованием технологии Ajax.
Среди особенностей и преимуществ данного решения разработчики выделяют следующие моменты:
— использование проверочного кода (captcha) для защиты от спама
— возможность отправлять сообщения на различные адреса в зависимости от темы сообщения
— встроенная валидация полей (проверка на корректность введенных данных)
— структурированный и четкий PHP-код
— гибкость в настройке получаемого сообщения
— для хранения настроек используются XML-файлы, что облегчает конфигурирование скрипта
— любое число вариантов для опции «тема письма»
— легко настраиваемые сообщения об ошибках без необходимости править PHP-код
В последнее время все чаще используются формы обратной связи с использованием Ajax, что позволяет сделать их более дружественными к пользователю.
Предлагаю и вам реализовать у себя на сайте такую интересную и красивую форму.
Для ознакомления с содержанием урока Вы можете просмотреть видео ниже. Скачать видеоурок в высоком качестве можно по ссылке выше.
P.S. Хотите всерьез заняться веб-разработкой? Присмотритесь к премиум-урокам по различным аспектам сайтостроения, а также к бесплатному курсу по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить JavaScript, jQuery, Ajax, PHP и другие языки и технологии:
Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!
Смотрите также:
Наверх
Как я делаю формы обратной связи. Часть 1. FormIt+Fancybox | Блог
Как я делаю формы обратной связи. Часть 1. FormIt+Fancybox | Блог | Создание и обслуживание сайтов на Modx
Уведомление об использовании cookie, IP-адреса и местоположения
Пример уведомление об использовании информации
Читать
Выводим вложенный MIGX в MIGX через Fenom
Инструкция как вывести поля MIGX во вложенной таблице MIGX через Fenom
Читать
Выгрузка для каталога Facebook
Подготавливаем файл со списком товаров для каталога Facebook
Читать
SEO требования к сайтам (первичное SEO)
Список правил по SEO (первичное SEO)
Читать
Автозакрытие fancybox через время
Улучшаем форму обратной связи
Читать
17 апреля 2016, 18:05
Средняя оценка:
Всего голосов: 5
На любом сайте обязательно должна быть форма обратной связи. В этой статье/инструкции я расскажу как делаю такие формы на сайтах клиентов, и как это сделано на моём сайте
Все формы можно разделить на две группы: обычные и всплывающие. В данном материале речь пойдёт о всплывающей форме обратной связи
И еще на мой вгляд идеальная форма обратной связи должна обладать следующим функционалом:
- Маска ввода телефона и email
- Защита от ботов(каптча)
- Авто-ответ клиенту
- Сохранение заявок в админке
1. Скачиваем и устанавливаем FormIt и Recaptchav2
Как скачивать и устанавливать дополнения описывать не буду — в интернете есть куча материалов на эту тему.
2.Скачиваем и подключаем maskedinput.js
Этот скрипт дает возможность задавать маску ввода телефона
3. Скачиваем с официального сайта Fancybox
Загружаем Fancybox на сайт и подключаем стили и скрипты:
4. Создаем отдельный шаблон для формы обратной связи
Делаем именно отдельный шаблон с минимальным наполнением для того чтобы в всплывающем окне ничего лишнего не было
5. Создаем два документа и задаем им шаблон созданный в предыдущем шаге
В одном размещаем вызов FormIt.
В другом документе помещаем текст об успешной отправке заявки.
6. Создаем необходимые чанки
6. В нужном месте вставляем вызов всплывающего окна
Готово! Данный код мною был установлен на многих сайтах и является 100% рабочим.
Если возник какой либо вопрос — пишите — помогу)
Derzaiii
17/04/2016
24540
Оцени и поделись 😉
Посещая этот сайт, вы разрешаете нам для его полноценного функционирования собирать ваши метаданные (cookie, IP-адрес и местоположение)
×
24540
Форма обратной связи
На данной странице представлена демонстрационная версия формы обратной связи:
Форма обратной связи или обратного звонка с использованием загрузки на AJAX. Из преимуществ перед обычными формами обратной связи можно отметить:
- Тип формы определяется в настройках, можно выбрать обратный звонок или сообщение.
- Возможность выбора получателя непосредственно в форме (например один из отделов организации: сервис, продажа, бухгалтерия). В качестве получателей используются элементы инфоблока.
- Загрузка формы на AJAX, что позволяет не отображать код формы на страницах сайта (особенно актуально при сквозном размещении), и как следствие форма оказывает меньшее влияние на СЕО.
После того как нажали «Установить» в маркетплейс и попали в административный раздел Вашего сайта отмечаем чекбокс напротив «Решение «Форма обратной связи / звонка»» и нажимаем кнопку «Загрузить»
Принимаем условия лицензионного соглашения
Решение загружается и необходимо его установить
Если решение установлено, то система оповещает вас об успешной установке
Если при установке возникли трудности сделайте скриншот ошибки и задайте вопрос в обсуждении данного модуля в маркетплейс.
Далее необходимо разместить и настроить компонент обратной связи на странице.
На нужной Вам странице перейдите в режим редактирования:
В панели компонентов редактора найдите установленный компонент (путь к компоненту PIXELB → Формы → Форма обратной связи AJAX)
Установите компонент на страницу разместив в необходимом месте в редакторе и сохраните страницу.
После установки компонента на страницу необходимо произвести настройку его параметров, в противном случае компонент выдаст предупреждение:
Рассмотрим параметры компонента с стандартным шаблоном поставляемым вместе с компонентом по умолчанию:
Название параметра | Описание |
Подключить системную библиотеку JQUERY (Если в шаблоне не подключена библиотека JQUERY) | Для работы компонента необходима библиотека JQUERY. Если в шаблоне сайта не подключена библиотека JQUERY установите данный чекбокс. |
Использовать CAPTCHA | При включенном чекбоксе в форме будет отображаться CAPTCHA для защиты от автоматической рассылки сообщений |
Сообщение об успешной отправке письма | Задает текст сообщения отображаемого пользователю при успешной отправке формы |
Сообщение о неудачной попытке отправки письма | Задает текст сообщения отображаемого пользователю при ошибке отправки формы |
Сообщение о незаполненных полях | Задает текст сообщения отображаемого пользователю при не заполненных обязательных полях. К данному тексту добавляется список незаполненных полей |
Заголовок всплывающего окна | Задает текст заголовка формы находящийся в верхней части всплывающего окна формы |
Текст триггера | Текст располагающийся на кнопке открытия формы |
Электронная почта получателя сообщения | Адрес электронной почты на который будут поступать сообщения с заполненными формами |
В компоненте существует возможность предоставлять пользователю выбор дополнительных получателей формы. Для того, чтобы задать дополнительные адреса используются элементы инфоблока.
Последующие параметры предоставляют возможность задать инфоблок и свойства для отображения пользователю и установки дополнительных получателей формы.
Пример:
На сайте создан инфоблок «Адреса», у инфоблока созданы свойства «email» «Адрес» и «Дополнительное название».
В настройках установлены:
Инфоблок для получения дополнительных адресов получателей сообщения: Адреса
Свойство инфоблока содержащее адрес получателя: email
Свойство инфоблока для отображения: Адрес
Свойство инфоблока для отображения: Дополнительное название
В итоге в форме отобразится список получателей:
При отправке форма будет доставлена на адрес электронной почты заданный в параметре «Электронная почта получателя сообщения» и на адрес электронной почты указанный в свойстве элемента инфоблока «email» того элемента, который выбрал пользователь при заполнении формы.
Название параметра | Описание |
Инфоблок для получения дополнительных адресов получателей сообщения | В списке указывается инфоблок, элементы которого будут использоваться для построения выпадающего списка дополнительных получателей формы (если не задан, список дополнительных получателей отображаться не будет) |
Свойство инфоблока содержащее адрес получателя | В списке указывается свойство элемента инфоблока которое будет использовано как адрес электронной почты дополнительного получателя формы (если не задан, список дополнительных получателей отображаться не будет) |
Свойство инфоблока для отображения | В списке указывается свойство элемента инфоблока отображаемое вместо названия элемента инфоблока (если не задано, будет отображаться название элемента инфоблока) |
Свойство инфоблока для отображения | В списке указывается дополнительное свойство элемента инфоблока отображаемое совместно с указанным в предыдущем параметре (если не задано, будет отображаться либо название элемента инфоблока, либо значение заданное в предыдущем параметре) |
Свойство инфоблока обязательно заполненное у элемента | Позволяет задать свойство по которому будут отбираться элементы инфоблока для построения списка дополнительных получателей. В список дополнительных получателей будут попадать только элементы у которых данное свойство заполнено. |
Время кэширования выборки из инфоблока | Задает время на которое будут сохраняться результаты выборки из базы данных |
Подпись к списку | Подпись к списку дополнительных адресов получателей |
Подпись к контактным данным | Подпись к списку полей формы |
Поля для заполнения | Поля отображаемые в форме |
Поля обязательные для заполнения | Поля обязательные для заполнения, если какое-либо из полей указанных в данном списке не заполнено пользователем, будет отображаться ошибка отправки формы. |
Тип почтового шаблона | Тип почтового шаблона |
Почтовый шаблон для отправки сообщения | Почтовый шаблон на основании которого будет формироваться сообщение с данными формы |
Максимальная длина данных | Максимальная длина данных допустимая для ввода в поля формы. |
ID формы | Идентификатор формы, если на странице расположено несколько форм, необходимо установить различные идентификаторы для каждой из форм |
Отображать правила отправки формы | При отмеченном чекбоксе будет отображаться чекбокс с правилами заполнения формы (политикой конфиденциальности) |
Адрес страницы с политикой обработки персональных данных | Адрес ссылки на страницу содержащую правила заполения форм или политику конфиденциальности |
Использовать иконку | Выбор иконки для отображения на триггере формы |
21 контактная форма для сайта (обратная связь) на jquery
1. Плагин для создания онлайн форм «jFormer»
Создание контактных форм: обратной связи, комментирования, форма входа, форма регистрации с проверкой правильности ввода информации.
2. Пошаговая форма регистрации с использованием jQuery
Аккуратная форма с пошаговым заполнением. Снизу указан индикатор заполнения формы.
3. Пошаговая форма
Заполнение формы в несколько шагов с проверкой правильности заполнения.
4. Контактная форма для сайта
Проверка правильности ввода ифнормации осуществляется «на лету» перед отправкой сообщения с использованием javascript.
5. Анимированное переключение между формами на jQuery
Анимированное переключение с помощью jQuery между формой входа на сайт, формой регистрации и полем для восстановления пароля. На демонстрационной странице нажмите на желтую ссылку для того чтобы увидеть эффект.
6. Выезжающая PHP форма обратной связи
Подобное решение можно использовать для того, чтобы дать посетителю возможность быстро связаться с владельцем сайта с любой страницы. На демонстрационной странице нажмите на стрелочку снизу, чтобы выехала форма.
7. PHP форма регистрации с использованием jQuery и CSS3
Форма с проверкой правильности ввода информации.
8. PHP форма регистрации в стиле Facebook
Симпатичная форма регистрации, реализованная с помощью CSS, PHP и jQuery.
9. jQuery контактная форма «SheepIt»
Реализована возможность перед отправкой сообщения добавлять новые поля.
10. Контактная форма «Fancy AJAX Contact Form»
Симпатичная аккуратная PHP форма обратной связи с проверкой правильности ввода информации. Технологии: CSS, PHP, jQuery.
11. Система авторизации/регистрации на сайте
Выезжающий блок авторизации/регистрации на сайте. Используемые технологии: PHP, MySQL, jQuery, CSS.
12. Форма отправки данных
С проверкой правильности заполнения.
13. Плагин jQuery «Contactable»
Для реализации выезжающей формы обратной связи для быстрой отправки сообщения.
14. jQuery плагин «Formwizard»
Плагин для реализации пошаговых форм на сайте.
15. Контактная форма в стиле старой печатной машинки
16. Эффект свечения на jQuery
Контактная форма с эффектом неонового свечения полей.
17. Проверка правильности ввода данных в форму на jQuery
jQuery форма с анимированными подсказками о допущенных ошибках при заполнении.
18. Стильная форма
Проверка правильности заполнения полей перед отправкой.
19. Форма обратной связи выдвигается сверху экрана
Анимационный эффект выезжающей формы обратной связи сверху экрана при нажатии на кнопку «Contact Us».
20. Форма обратной связи
Аккуратная чистая форма.
21. Пошаговые формы
Модуль Ajax формы обратной связи для Joomla 2.5 и Joomla 3
Модуль blogajaxforma позволяет выводить на сайте форму обратной связи, которая может работать в двух режимах — через PHP для тех, у кого вообще ничего не работает и через Ajax без перезагрузки страницы.
Данный модуль я сделал для упрощения жизни веб программистам, постарался сделать все интуитивно понятно, а главное функционально.
Особенности модуля:
1. В модуле есть вывод 4-х полей (Ваше имя, Номер телефона, Ваш email, Текст сообщения). Каждое из полей можно переименовывать под ваши задачи, отключать/включать их показ в форме, а также делать обязательными для заполнения.
2. Возможность отправки по технологии Ajax без перезагрузки страницы.
3. Возможность менять стиль формы как угодно.
Установка модуля
1. Скачайте модуль blogajaxforma для Joomla 2.5 — 3 и установите его как обычно через менеджер расширений.
2. Перейдя в раздел «Менеджер модулей» откройте «Ajax форма обратной связи blogprogram.ru». Состояние -> «Опубликовано» и где показывать — «На всех страницах»
Скриншоты
Настройки модуля
Чтобы никого не обидеть, по умолчанию модуль работает в php режиме без Ajax. Протестируйте форму — она уже должна отправлять сообщения.
Чтобы включить Ajax отправку в настройках «Использовать Ajax» выберите «Да». Теперь если напишет (при проверке формы), что «Сообщение успешно отправлено» значит Ajax работает. Если не работает — выберите «Подключ. JQuery биб-ку» -> «Да». Если снова не заработает, значит у вас конфликт JS скриптов. Вам будет необходимо откатить настройки до обычной отправки писем через php, либо отключать скрипты, плагины, которые блокируют Ajax. ps На моих сайтах все работало, когда я тестировал форму в обоих режимах.
В поле «Стиль формы» вы можете поменять .yourajaxformaer1 {width: 410px;} на .yourajaxformaer1 {width: 100%;} чтобы форма была на всю ширину.
Скачать модуль ajax формы для Joomla 2.5 — 3
ps
Для joomla 2.5 также может подойти еще один модуль обратной связи.
Читайте также
blogprogram.ru | 2015-11-20 | Модуль Ajax формы обратной связи для Joomla 2.5 и Joomla 3 | Модуль blogajaxforma позволяет выводить на сайте форму обратной связи, которая может работать в двух режимах — через PHP для тех, у кого вообще ничего | https://blogprogram.ru/wp-content/uploads/2015/11/myauu-131×131.png
Битрикс. Форма обратной связи. Категория: Web-разработка • CMS Битрикс
Задача: создать форму обратной связи для страницы «Контакты». Эта страница содержит Google-карту, адрес и форму обратной связи. Чтобы получить код вызова компонента, открываем тестовую страницу в визуальном редакторе, справа выбираем компонент «Служебные • Форма обратной связи». В настройках компонента убираем CAPTCHA, задаем e-mail, на который будут приходить сообщения и отмечаем обязательные для заполнения поля. Сохраняем в буфер обмена код вызова компонента и выходим из редактора без сохранения.
В шаблоне от верстальщика страница «Контакты» выглядит так:
<div> <h4>contact</h4> <div> <iframe src="https://www.google.com/maps/embed?pb=..."></iframe> </div> </div> <div> <div> <h5>Contact Form</h5> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tincidunt dolor...</p> <form> <div> <input type="text" value="Name" placeholder="Name"> <input type="text" value="Email Address" placeholder="Email Address"> <input type="text" value="Subject" placeholder="Subject"> <textarea value="Message" placeholder="Message">Message</textarea> <div> </div> <div> <input type="submit" value="Send message"> </div> </div> </form> </div> <div> <div> <h4>Contact Info</h4> <span>Lorem ipsum dolor sit amet, consectetur adipiscing elit velit justo.</span> <address> <p>email:<a href="#">[email protected]</a></p> <p>phone: 1.306.222.4545</p> <p>222 2nd Ave South</p> <p>Saskabush, SK S7M 1T6</p> </address> </div> </div> <div> </div> </div>
HTML-код формы обратной связи комментируем и на это место вставляем код вызова компонента:
<?php $APPLICATION-$APPLICATION->IncludeComponent( "bitrix:main.feedback", ".default", array( "EMAIL_TO" => "[email protected]", // куда отправлять сообщения "EVENT_MESSAGE_ID" => array(), "OK_TEXT" => "Спасибо, ваше сообщение принято.", "REQUIRED_FIELDS" => array( // обязательные для заполнения поля 0 => "NAME", 1 => "EMAIL", 2 => "MESSAGE", ), "USE_CAPTCHA" => "N", // не использовать CAPTCHA "COMPONENT_TEMPLATE" => ".default" ), false ); ?>
Копируем шаблон компонента, чтобы задать для формы наше оформление. Имя шаблона задаем как feedback
, копировать будем в общий шаблон local/templates/.default
.
Открываем скопированный шаблон local/templates/.default/components/bitrix/main.feedback/feedback/template.php
на редактирование. Чтобы было проще разобраться в коде, откроем также языковый файл:
<?php /* * Файл local/templates/.default/components/bitrix/main.feedback/feedback/lang/ru/template.php */ $MESS['MFT_NAME'] = "Ваше имя"; $MESS['MFT_EMAIL'] = "Ваш E-mail"; $MESS['MFT_MESSAGE'] = "Сообщение"; $MESS['MFT_CAPTCHA'] = "Защита от автоматических сообщений"; $MESS['MFT_CAPTCHA_CODE'] = "Введите слово на картинке"; $MESS['MFT_SUBMIT'] = "Отправить";
И будем держать перед глазами шаблон формы обратной связи от верстальщика:
<form> <div> <input type="text" value="Name" placeholder="Name"> <input type="text" value="Email Address" placeholder="Email Address"> <input type="text" value="Subject" placeholder="Subject"> <textarea value="Message" placeholder="Message">Message</textarea> <div> </div> <div> <input type="submit" value="Send message"> </div> </div> </form>
После редактирования шаблон компонента получился таким:
<?php /* * Файл local/templates/.default/components/bitrix/main.feedback/feedback/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); /** * Bitrix vars * * @var array $arParams * @var array $arResult * @var CBitrixComponentTemplate $this * @global CMain $APPLICATION * @global CUser $USER */ ?> <div> <?php /* сообщение об ошибке */ if(!empty($arResult["ERROR_MESSAGE"])) { foreach($arResult["ERROR_MESSAGE"] as $v) { ShowError($v); } } ?> <?php if (strlen($arResult["OK_MESSAGE"]) > 0): /* сообщение об успешной отправке формы */ ?> <div><?= $arResult["OK_MESSAGE"]; ?></div> <?php endif; ?> <form action="<?= POST_FORM_ACTION_URI; ?>" method="POST"> <div> <?= bitrix_sessid_post(); ?> <div> <!-- поле «Ваше имя» --> <div> <?= GetMessage("MFT_NAME"); ?> <?php if (empty($arParams["REQUIRED_FIELDS"]) || in_array("NAME", $arParams["REQUIRED_FIELDS"])): /* поле обязательно для заполнения? */ ?> <span>*</span> <?php endif; ?> </div> <input type="text" name="user_name" value="<?= $arResult["AUTHOR_NAME"]; ?>" placeholder="<?= GetMessage("MFT_NAME"); ?>"> </div> <div> <!-- поле «Ваш e-mail» --> <div> <?= GetMessage("MFT_EMAIL"); ?> <?php if (empty($arParams["REQUIRED_FIELDS"]) || in_array("EMAIL", $arParams["REQUIRED_FIELDS"])): /* поле обязательно для заполнения? */ ?> <span>*</span> <?php endif; ?> </div> <input type="text" name="user_email" value="<?=$arResult["AUTHOR_EMAIL"]?>" placeholder="<?= GetMessage("MFT_EMAIL"); ?>"> </div> <div> <!-- поле «Сообщение» --> <div> <?= GetMessage("MFT_MESSAGE"); ?> <?php if (empty($arParams["REQUIRED_FIELDS"]) || in_array("MESSAGE", $arParams["REQUIRED_FIELDS"])): /* поле обязательно для заполнения? */ ?> <span>*</span> <?php endif; ?> </div> <textarea name="MESSAGE" placeholder="<?= GetMessage("MFT_MESSAGE"); ?>"><?= $arResult["MESSAGE"]; ?></textarea> </div> <?php if($arParams["USE_CAPTCHA"] == "Y"): ?> <!-- CAPTCHA --> <div> <div><?= GetMessage("MFT_CAPTCHA"); ?></div> <input type="hidden" name="captcha_sid" value="<?= $arResult["capCode"]; ?>"> <img src="/bitrix/tools/captcha.php?captcha_sid=<?= $arResult["capCode"]; ?>" alt="CAPTCHA"> <div><?= GetMessage("MFT_CAPTCHA_CODE"); ?><span>*</span></div> <input type="text" name="captcha_word" size="30" maxlength="50" value=""> </div> <?php endif; ?> <input type="hidden" name="PARAMS_HASH" value="<?= $arResult["PARAMS_HASH"]; ?>"> <div> <input type="submit" name="submit" value="<?= GetMessage("MFT_SUBMIT"); ?>"> <!-- кнопка отправки формы --> </div> </div> </form> </div>
Если что-то выглядит не так, можно подправить файл стилей компонента:
/* * Файл local/templates/.default/components/bitrix/main.feedback/feedback/style.css */ div.mfeedback {} div.mf-name, div.mf-email, div.mf-captcha, div.mf-message { width: 100%; padding-bottom: 0.4em; } div.mf-name input, div.mf-email input { width: 60%; } div.mf-message textarea { /* width: 60%; */ } span.mf-req { color: red; } div.mf-ok-text { color: green; font-weight: bold; padding-bottom: 1em; }
Поиск:
CMS • Web-разработка • Битрикс • Компонент • Форма • Шаблон компонента
Простая асинхронная контактная форма с jQuery и PHP · GitHub
Простая асинхронная контактная форма с jQuery и PHP · GitHub
Мгновенно делитесь кодом, заметками и фрагментами.
Простая асинхронная контактная форма с jQuery и PHP
Этот файл содержит двунаправленный текст Unicode, который может интерпретироваться или компилироваться иначе, чем то, что показано ниже.Для просмотра откройте файл в редакторе, который показывает скрытые символы Юникода.
Подробнее о двунаправленных символах Юникода
Этот файл содержит двунаправленный текст Unicode, который может интерпретироваться или компилироваться иначе, чем то, что показано ниже. Для просмотра откройте файл в редакторе, который показывает скрытые символы Юникода.
Подробнее о двунаправленных символах Юникода
Этот файл содержит двунаправленный текст Unicode, который может интерпретироваться или компилироваться иначе, чем то, что показано ниже.Для просмотра откройте файл в редакторе, который показывает скрытые символы Юникода.
Подробнее о двунаправленных символах Юникода
Этот файл содержит двунаправленный текст Unicode, который может интерпретироваться или компилироваться иначе, чем то, что показано ниже. Для просмотра откройте файл в редакторе, который показывает скрытые символы Юникода.
Подробнее о двунаправленных символах Юникода
Вы не можете выполнить это действие в настоящее время.Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс.
Вы вышли из системы на другой вкладке или в другом окне. Перезагрузите, чтобы обновить сеанс.
Как настроить базовую проверку формы jQuery за две минуты
В этом руководстве показано, как настроить базовую проверку формы с помощью jQuery, продемонстрированную регистрационной формой.
Мы собираемся использовать подключаемый модуль проверки jQuery для проверки нашей формы. Основной принцип этого плагина — указать правила проверки и сообщения об ошибках для HTML-элементов в JavaScript.
Вот живая демонстрация того, что мы собираемся построить:
См. Статью Pen
jQuery Form Validation by SitePoint (@SitePoint)
на CodePen.
Шаг 1. Включите jQuery
Во-первых, нам нужно включить библиотеку jQuery. Плагин проверки jQuery был протестирован до версии jQuery 3.1.1, но демонстрация в этой статье отлично работает с версией 3.4.1, которая является последней.
Вы можете использовать любой из следующих вариантов загрузки:
- Загрузите его из jquery.com
- Загрузите его с помощью Bower:
$ bower install jquery
- Загрузите его с помощью npm или Yarn:
$ npm install jquery
илиyarn add jquery
- Используйте CDN:
https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
Создайте новый HTML-файл с именем index.html
и включите jQuery перед закрывающим тегом