eForm
MODX Docs
Перейти
eForm
MODX Wiki
Перейти
eForm
Docs
Перейти

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

Вот некоторые из возможностей сниппета:

1. Форма проверки с помощью мощных правил проверки
2. Защита скрытых полей от взлома
3. CAPTCHA поддержка
4. Поддерживает HTML
5. Гибкая настройка
6. Уведомление для мобильных устройств
7. Автоматическое отправление почты
8. Поддержка CC и BCC полей

Параметры

Обязательные параметры

Формат: строка
Значение по умолчанию: нет
Примечание: Идентификатор формы используется при отправке данных. Этот параметр необходим если на странице используется более одной формы. Шаблон формы должен иметь скрытое поле с тем же идентификатором:
<input type="hidden" name="formid" value="formName" />
или (начиная с eForm 1.4.x) можно установить идентификатор прямо в теге формы:
<form id="formName"...>

Пример:
&formid=`shopOrderForm`
Формат: чанк | документ | сниппет
Значение по умолчанию: нет
Примечание: Имя чанка или идентификатор документа (число) для используемого шаблона. Можно также использовать сниппет как источник шаблона. При этом никакие параметры не передаются. Для регулярных полей формы не нужно включать переменные, так как они автоматически включаются eForm, исключая случаи когда вы сами задаете значения.
Доступны плэйсхолдеры:
[+validationmessage+]
[+postdate+]
[+verimageurl+]
[+debugText+]

Пример:
&tpl=`OrderForm`
Формат: чанк | документ
Значение по умолчанию: нет
Примечание: Имя чанка (не число) или идентификатор документа (число) для шаблона отчета. При использовании параметра &noemail этот параметр не требуется.
Пример:
&report=`OrderReport`

Остальные параметры

Формат: email
Значение по умолчанию: системный адрес
Примечание: Можно использовать несколько адресов разделяя их запятой (,). Если не указано, то будет использован системный адрес.
Пример:
&to=`mail_1@ваш-домен.ru,mail_2@ваш-домен.ru`
Формат: email
Значение по умолчанию: системный адрес
Примечание: Устанавливает адрес отправителя письма.
Пример:
&from=`mail@ваш-домен.ru`
Формат: строка
Значение по умолчанию: site_name
Примечание:
Пример:
&fromname=`Администратор`
Формат: email
Значение по умолчанию: &to
Примечание: Электронный адрес или поле содержащее адрес, который будет использован вписьме для ответа.
Пример:
&replyto=`mail@ваш-домен.ru`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Включает возможность использовать поле формы для определения адреса, по которому будет послано письмо.
Пример:
&sendirect=`1`
Формат: email
Значение по умолчанию: пусто
Примечание:
Пример:
&cc=``
Формат: email
Значение по умолчанию: пусто
Примечание:
Пример:
&bcc=``
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: По умолчанию установлено в 0. eForm ищет адрес пользователя в поле с названием email.
Пример:
&ccsender=`1`
Формат: строка
Значение по умолчанию: пусто
Примечание: Тема сообщения, которая может включать поля формы. Может включать ((поля формы)).
Пример:
&subject=`Спасибо за ваш заказ ((firstname)) ((lastname))`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: 1 - отключить отправку писем
0 - включить отправку писем
Пример:
&noemail=`1`
Формат: список email
Значение по умолчанию: пусто
Примечание: Устанавливает поле формы, которое будет использоваться при выборе единственного адреса из списка адресов разделенных запятой (,) для использования в параметре &to. Значения поля будет определять номер используемого почтового адреса. Номер 1 соответствует первому адресу и N - последнему. В форме используется поле topic в виде выпадающего списка. Когда пользователь выбирает значение, то тем самым он определяет один адрес, по которому будут посланы данные формы.
&to=`sales@me.com,support@me.com,billing@me.com` &mailselector=`topic`

Пример:
&mailselector=``
Формат: email
Значение по умолчанию: пусто
Примечание: Адрес почты мобильного устройства. Используется для отсылки короткого сообщения.
Пример:
&mobile=``
Формат: Строка (чувствительна к регистру)
Значение по умолчанию: пусто
Примечание: Сообщение для отправки на мобильное устройство. Может содержать поля формы.
Пример:
&mobiletext=`Заказ для [+firstname+]`
Формат: чанк | документ
Значение по умолчанию: пусто
Примечание: Имя чанка (не число) или идентификатор документа (число) дляи спользуемого шаблона сообщения выводимого пользователю после отправки данных формы.
Доступны плэйсхолдеры:
[+validationmessage+]
[+postdate+]
[+verimageurl+]
[+debugText+]

Пример:
&thankyou=``
Формат: id документа
Значение по умолчанию: пусто
Примечание: Идентификатор документа на который будет совершен переход после отправкиданных формы. Смотрите также &thankyou.
Пример:
&gotoid=`34`
Формат: строка | категория
Значение по умолчанию: пусто
Примечание: Название или идентификатор категории используемый для категоризации eForm. Если категория не найдена, то она автоматически будет создана. Это используется в теме сообщения.
Пример:
&category=``
Формат: список ключевых слов | список полей
Значение по умолчанию: пусто
Примечание: Разделяемые запятой (,) ключевые слова или поле формы используемое при поиске банка данных.
Пример:
&keywords=`[+firstname+],[+lastname+], [+email+]`
Формат: email
Значение по умолчанию: пусто
Примечание: Адрес электронной почты, который показывается при отправке сообщения автоответчика.
Пример:
&autosender=`no-reply@mydomain.com`
Формат: строка
Значение по умолчанию: пусто
Примечание: Имя, используемое в сообщении автоответчика.
Пример:
&autoSenderName=`name`
Формат: чанк | документ
Значение по умолчанию: пусто
Примечание: Название чанка (не число) или идентификатор документа (число) для используемого шаблона в сообщении автоответчика. Может содержать поля формы.
Пример:
&automessage=`messageForm`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Включает использование пользователями HTML в сообщении. 1 - включено, 0 - выключено. Возможны XSS атаки, например если раззрешено в чанке thankyou.
Пример:
&allowhtml=`1`
Формат: название языка
Значение по умолчанию: english
Примечание: Устанавливает используемый язык сообщений и проверки. Название языков совпадает с MODX.
Пример:
&language=``
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Включает код проверки. Шаблон должен содержать поле для проверки и плэйсхолдер [+vericode+].
Пример:
&vericode=`1`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Включает расширенные сообщения об ошибках в проверке формы. В основном для отладки #LIST и #SELECT. 1 - включено, 0 - выключено.
Пример:
&debug=`1`
Формат: 1 | report, autotext, mobile
Значение по умолчанию: пусто
Примечание: Определяет, какие сообщения будут использовать формат html.
1 - все сообщения
report, autotext, mobile - конкретные типы сообщений.
Пример:
&sendAsHtml=`report`
Формат: 1 | report, autotext, mobile
Значение по умолчанию: пусто
Примечание: Определяет, какие сообщения будут использовать текстовый формат.
1 - все сообщения
report, autotext, mobile - конкретные типы сообщений.
Пример:
&sendAsText=`report`
Формат: список переменных сессии
Значение по умолчанию: пусто
Примечание: Названия переменных сессии $_SESSION, разделенные запятой (,). Они будут добавлены в список значений полей перед отображением формы и могут быть использованы в качестве скрытых полей. Если вы используете этот параметр, то убедитесь, что вы не раскрываете важную информацию сессии (скрытые поля не защищают информацию!).
Так как eForm не выполняет самостоятельную обработку таких значений, то вам необходимо включить их в шаблон.
Пример:
[!eForm &sessionVars=`jobID` ... !]
 

Пример:
&sessionVars=``
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: Используется в комбинации с &sessionVars. Переменные сессии будут переписаны введенными в форму значениями. При установке значения 1 полученные в форме данные получают приоритет.
Пример:
&postOverides=`1`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: При установке значения `1` будут посылаться сообщения на специальный электронный адрес если будет замечена попытка инъекции eForm (используйте умеренно).
Пример:
&reportAbuse=`1`
Формат: чанк | файл
Значение по умолчанию: пусто
Примечание: Добавляет определение стиля в область <head> страницы, на которой располагается форма или сообщение для пользователя показываемое после отправки (только если параметр &thankyou установлен). Значения могут быть в виде идентификатора документа (число), имени чанка или ссылки на таблицу стилей (относительная или абсолютная). Можно использовать несколько значений разделяя их запятыми (,) (фактически можно комбинировать все три вида значений).
Пример:
[!eForm &cssStyle=`assets/site/forms.css,chunkName` ... !]
[!eForm &cssStyle=`chunkName` ... !]
[!eForm &cssStyle=`http://mysite.com/assets/styles/forms.css` ... !]
Примечание. Чанки (и документы, если установлен идентификатор документа) могут использовать значения в форме:
1. как встроенный блок:
<style>: <style type="text/css">/*какие-то стили*/</style>
2. как ссылка на таблицу стилей:
<link href="assets/site/forms.css" rel="stylesheet" type="text/css">
3. как разделенный запятой (,) список ссылок на таблицы стилей:
assets/site/forms.css,assets/site/more.css,assets/site/gone_overboard.css 

Пример:
&cssStyle=``
Формат: чанк | файл
Значение по умолчанию: пусто
Примечание: Аналогично параметру cssStyle.
[!eForm &jScript=`assets/site/forms.js,chunkName` ... !]
[!eForm &jScript=`chunkName` ... !]
[!eForm &jScript=`http://mysite.com/assets/styles/forms.js` ... !]

Пример:
&jScript=``
Формат: 0 | 1 | список полей
Значение по умолчанию: 1
Примечание: Защита формы от повторной отправки с теми же данными. Отправка данных формы автоматически отключается после первой успешной попытки пока ключ формы является одним и тем же. Для этого используется переменная сеанса с md5 хэшем в качестве ключа. Какие поля используются для сравнения задается в параметре &protectSubmit. Возможные значения:
0 - выключено
1 - используются все поля `required`
Список полей - список используемых полей через запятую.
Чтобы гарантировать, что используются соответствующие поля для разных форм переменная сессии основана на &formid({formid}_hash).
Пример:
&protectSubmit=`0`
Формат: 0 | минуты
Значение по умолчанию: 0
Примечание: Устанавливает лимит времени (в минутах) между отправками данных формы. После первой успешной отправки данных запрещает отправку других данных наопределенное время. При использовании совместно с &protectSubmit этот параметр имеет приоритет, позволяя повторную отправку данных независимо от установки &protectSubmit (будет сброшена сессионная переменная). Как и &protectSubmit этот параметр использует сессионную переменную основанную на &formid.
Пример:
&submitLimit=`10`
Формат: CSS-класс
Значение по умолчанию: пусто
Примечание: Название класса. Добавляет класс в определенные поля формы при проверке. Существующие классы будут сохранены.
Если вы уже определили класс для полей или меток (label) и получили неожиданные результаты, то проверьте порядок определения классов. &requiredClass устанавливается в начало любых классов, которые уже установлены.
Пример:
&requiredClass=``
Формат: CSS-класс
Значение по умолчанию: пусто
Примечание: Название класса. Добавляет класс к неправильно заполненным полям формы, которые выявились при проверке. Существующие классы будут сохранены.
Пример:
&invalidClass=``
Формат: сниппет
Значение по умолчанию: пусто
Примечание: Определяет имя сниппета. Сниппет будет выполнен перед всеми обработками eForm. Один параметр &formid, будет опущен для сниппета. Любые возвращенные значения из сниппета не будут учитываться. Это может быть использовано как альтернатива использования функций в документе. К сожалению eForm молча проигнорирует результат работы сниппета, так как &modx->runSnippet не возвращает никаких значений.
Пример:
&runSnippet=``
Формат: путь от папки 'assets/snippets/'
Значение по умолчанию: пусто
Примечание: Для тех кто хочет оставить другие версии eForm активными. Теперь вы можете сохранить все файлы eForm и соответственно установить &snipFolder. Например вы можете сохранить версию 1.4.4 в папку assets/snippets/eform/1.4.4 и установить параметр:
&snipFolder=`eform/1.4.4`
К значению автоматически добавится путь 'assets/snippets/'. Не нужно использовать закрывающий слэш (/)!
Пример:
&snipFolder=`eform/1.4.4`
Формат: имя поля
Значение по умолчанию: пусто
Примечание: Имя поля формы, которое содержит список имен файлов, разделенных запятыми. Эти файлы должны быть расположены в &attachmentFolder.
Пример:
&attachmentField=``
Формат: путь
Значение по умолчанию: пусто
Примечание: Путь к папке (относительно MODX basepath), которая содержит файлы, указанные в &attachmentField. Не нужно использовать закрывающий слэш (/)!
Пример:
&attachmentPath=``
Формат: чанк | строка
Значение по умолчанию: пусто
Примечание: Имя чанка или текст, используемый в качестве шаблона для ошибок. Доступные плейсхолдеры:
[+ef_message_text+]
[+ef_wrapper+]
Пример:
&errorTpl=``
Формат: чанк | строка
Значение по умолчанию: пусто
Примечание: Имя чанка или текст, используемый в качестве шаблона для списка необходимых полей. Доступные плейсхолдеры:
[+ef_required_list+]
Пример:
&errorRequiredTpl=``
Формат: чанк | строка
Значение по умолчанию: пусто
Примечание: Имя чанка или текст, используемый в качестве разделителя между двумя элементами в списке необходимых полей.
Пример:
&errorRequiredSeparator=`, `

События для PHP функций

Формат: функция
Значение по умолчанию: пусто
Примечание: Определяет название функции. Эта функция будет запущена после того как форма будет проверена и перед отчетом и сообщением для пользователя, а также отправкой любых сообщений. Функции передаются следующие параметры: &$fields - массив полей и значений переменных.
Пример:
&eFormOnBeforeMailSent=``
Формат: функция
Значение по умолчанию: пусто
Примечание: Определяет название функции. Эта функция будет запущена после обработки всех шаблонов и любое сообщение будет послано. Функции передаются следующие параметры: &$fields - массив полей и значений переменных.
Пример:
&eFormOnMailSent=``
Формат: функция
Значение по умолчанию: пусто
Примечание: Определяет название функции. Эта функция будет запущена после загрузки шаблонов и определения идентификатора формы. Функции передаются следующие параметры:
&$fields - массив полей и значений переменных.
&$templates - массив всех шаблонов с индексами 'tpl','report','thankyou' и 'autotext'. Последние три будут иметь значение только после отправки формы.
Пример:
&eformOnBeforeFormParse=``
Формат: функция
Значение по умолчанию: пусто
Примечание: Определяет название функции. Эта функция будет запущена только при показе форм и до определения всех переменных шаблона. Функции передаются следующие параметры: &$fields - массив полей и значений переменных.
Пример:
&eFormOnBeforeFormMerge=``
Формат: функция
Значение по умолчанию: пусто
Примечание: Определяет название функции. Эта функция будет запущена после проверки данных формы. Это можно использовать для определения собственного алгоритма обработки. Функции передаются следующие параметры:
&$fields - массив полей и значений переменных
&$vMsg - числовой массив ошибок проверки данных формы
&$rMsg - числовой массив пропущенных обязательных полей
&$rClass - ассоциативный массив имен полей и классов

Пример:
&eFormOnValidate=``

Плейсхолдеры шаблона

Для многих стандартных полей формы eFrom автоматически вставляет соответствующие переменные шаблона. Также вы можете определить их самостоятельно:

  • [+validationmessage+] - Необходимо использовать в каком-то месте вашего шаблона или документа. С версии 1.4.2 эта переменная шаблона подверглась изменениям. Во-первых теперь ее не обязательно использовать в шаблоне. Теперь вы можете разместить ее в любом месте вашего документа. Во-вторых вам необязательно устанавливать какие-то тэги вокруг этой переменной. Теперь все html окружение включается в значение $_lang[\'ef_validation_message'] в языковом файле eForm.
  • [+vericode+] и [+verimageurl+] - необходимы если вы собираетесь использовать в форме графическую проверку (capthca). Смотрите в примерах как это использовать.
  • [+postdate+] - эта переменная будет использована в отчете и сообщении для пользователя после отправки данных формы и установит текущую дату и время.
  • [+debug+] - начиная с версии 1.4.1, автоматически устанавливается, если включен режим отладки, в форме и сообщении для пользователя после отправки. Не помещается автоматически в шаблон отчета. Необходимо избегать отправку технической информации через сервер. Если вы хотите протестировать отправку писем, то можете включить эту переменную самостоятельно.

Типы и форматы данных

Формат данных

eForm имеет встроенный анализатор определяющий формат и тип данных с соответствующей проверкой каждого поля. Для настройки используется добавление дополнительного параметра eform в необходимые поля.

<input type="text" name="color" eform="A Color:string:1" />

Базовый вид параметра eform следующий:

[description/title]:[datatype]:[required]:[validation message]:[validation rule]

Типы данных

Вы можете устанавливать только эти типы данных. Другие определяются автоматически.

Все поля автоматически проверяют на пустоту значений.

  • string - не имеет специальной проверки кроме пустоты и обязательности заполнения.
  • date - проверяется на правильность формата даты (основано на функции strtotime())
  • integer - проверяется на числовое значение (не проверяется, если оно целое)
  • float - проверка на числовое значение
  • email - проверяет правильность адреса email с использованием регулярных выражений
  • file - (для поля загрузки файла) - проверяет соответствие разрешенному размеру, на текущий момент не имеет проверки типов файлов.
  • html - также как тип string только перенос строки преобразуется в тэг <br />

Выпадающие списки, чекбоксы, и радиобатоны не требуют определения типа. eForm определяет их автоматически.

Проверка данных

Эта версия поддерживает расширенную проверку на стороне сервера и фильтрацию, использующую очень гибкие правила проверки, которые включаются в параметр eform. Вы можете определить 2 дополнительных параметра проверки, сообщение об ошибке и проверке или правило фильтра.

Например:

eform="Year of Birth:integer:1:Must be between 1950 and 2002:#RANGE 1950-2002"

Правила проверки

#LIST - перечисленные через запятую возможные значения.

Например:

#LIST красный,зеленый,оранжевый,синий

#RANGE - разделенные запятой возможный числовые значения или числовые диапазоны. При установке диапазона порядок не имеет значения. 1~10 и 10~1 будут одинаково определять числа между 1 и 10 (включительно). Можно использовать как положительные так и отрицательные числа.

Например:

#RANGE 1,3,-5~-15,60~82

#SELECT - определяет правильность значений, которые будут возвращены из базы при запросе. Запрос должен возвращать значения только одной колонки (функция проверяет только первую колонку). Вы можете использовать {\DBASE} {\PREFIX} тэги. Они будут автоматически заменены на название базы MODx и используемый префикс таблицы.

Например:

#SELECT keyword FROM {\PREFIX}site_keywords

#EVAL - строка кода PHP. Может возвращать true или false. Внимание! Хотя #EVAL все еще используется в eForm 1.4, но в будущих версиях они скорее всего больше не будут поддерживаться. Взамен используйте #FUNCTION.

#FUNCTION - название функции. Функция должна использовать только одно значение (значение поля) и возвращать TRUE или FALSE. Смотрите примеры, чтобы разобраться как это действует.

Например:

#FUNCTION myValidationFunction

#REGEX - регулярное выражение. Синтаксис preg_match() в PHP.

Пример:

#REGEX /^[\a-z]+ [\a-z0-9_]+/i

#FILTER - фильтры не проверяют введенных значений, но заменяют слова и значения, которые соответствуют критериям. Вы можете использовать следующие фильтры:

  • #FILTER #LIST
    Используйте две вертикальные черты для разделения заменяемых и заменяющих слов.
    Например:
    #FILTER #LIST badword,verybadword||goodword,verygoodword
  • #FILTER #EVAL
    Например:
    #FILTER #EVAL return myFilterFunction($value);

    (естественно вы должны быть уверены в существовании указанной функции)

    Примеры применения фильтра:

        function myFilterFunction($value){\

           $badWords = array('scribble','coding');

           $goodWords = array('design','sleep');

           return str_replace($badWords,$goodWords,$value);

        }
  • #FILTER #REGEX
    Регулярное выражение замены. Синтаксис preg_replace() в PHP. Поиск и выражение замены разделяется двумя вертикальными чертами (||)

Поля select, radio и checkbox

Эти поля имеют автоматическу проверку. Все полученные значения проверяются на соответствие установленными вами в шаблоне формы. Это позволяет избежать добавления посторонних значений в эти поля.

Скрытые поля

По умолчанию скрытые поля присутствуют как защита от подделки формы при сравнении используемых значений (как в полях select, radio и checkbox). Но в некоторых местах это может быть ненужно. Например если вы используете обработку javascript, которая хранит свои значения в скрытых полях. В это случае вы можете изменить это поведение используя параметр eform (включая или выключая проверку).

Скрытое поле пример 1:

Встроенное поведение удобно, если вы храните в скрытом поле идентификатор документа и не хотите чтобы он был изменен кем-либо. Поле должно выглядеть примерно так:

<input type="hidden" name="docId" value="31" />

Скрытое поле пример 2:

Если вы используете javascript, который хранит значения в скрытых полях, то вам необходимо убрать проверку поля так:

<input type="hidden" name="calculatedField" value="" eform="::0::" />

Скрытое поле пример 3:

Пример похожий на 2, но вы хотите убедиться, что возвращенные значения лежат в допустимом диапазоне чисел. Установим для параметра eform заголовок, числовой тип данных, обязательность заполнения, сообщение об ошибке и проверку на диапазон. Это будет выглядеть так:

<input type="hidden" name="calculatedField" value="" eform="Calculated Value:integer:1:Calculation out of range:#RANGE 1-10" />

Пример полей с проверкой

Выпадающий список - обязательное поле (не требуется проверка)

<select name="mySelect" eform_options="Select Country::1" /> (тип данных не определен)
    <option value="en-au">Australia</option>
    <option value="en-us">USA</option>
</select>

Текстовое поле - обязательное поле и формат данных для дат.

<input type="text" name="dobDate" eform_options="Date of Birth:date:1:@EVAL return (strtotime($value)!==-1)?true:false;" />

Много чекбоксов - обязательное поле, можно выбрать несколько значений.

<input type="checkbox" name="myColors[]" value="Red" eform_options="Colors::1" /> (тип данных не определен)
<input type="checkbox" name="myColors[]" value="Green" /> (тип данных не определен)

Защита от спама

Встроенная капча не дает надежной защиты от спама. Поэтому от нее имеет смысл или отказаться вообще в пользу других решений или использовать несколько методов борьбы со спамом одновременно. В данный момент популярно решение, используемое в кастомной сборке Дмитрия Лукьяненко. Суть метода - добавить в шаблон формы скрытое поле и сделать его незаполнение обязательным:

<input value="" name="special" class="special" type="text" eform="Спец:date:0"  style="display:none;">

Примеры

eForm в модальном окне

Ситуация, когда надо вывести форму в модальном окне довольно частая. Выведем форму в модальном окне Bootstrap 3.

Модальное окно будет выглядеть примерно так:

<button class="btn" data-toggle="modal" data-target="#myModal"></button>

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Заголовок окна</h4>
            </div>
                <div id="myModal_form">
                    [!eForm? &formid=`Form` &tpl=`tplForm` &report=`tplReport` &thankyou=`tplThank` &subject=`Сообщение с сайта [(site_name)]`!]
                </div>
        </div>
    </div>
</div>

Чанк tplForm:

<form method="post" action="[~[*id*]~]" name="Form" id="Form">
    <div class="modal-body">
        <input value="" name="special" class="special" type="text" eform="Спец:date:0" style="display:none;">
        ...
    </div>
    <div class="modal-footer">
        <input type="submit" class="btn" name="submit" id="submit" value=" Отправить ">
    </div>
</form>

Чанк tplThank:

<div class="modal-body">
    Ваше сообщение отправлено.
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
</div>

Ну и последний штрих, нужно разместить примерно такой скрипт:

<script>
    $(function(){
        $(document).on("submit","#Form",function(e){
            e.preventDefault();
            var m_method=$(this).attr('method');
            var m_action=$(this).attr('action');
            var m_data=$(this).serialize();
            $.ajax({
                type: m_method,
                url: m_action,
                data: m_data,
                resetForm: 'true',
                success: function(result){
                    var data = $(result).find("#myModal_form").html();
                    $("#myModal_form").html(data);
                }
            });
        });
    });
</script>

Поделитесь ссылкой

Статистика

Яндекс цитирования
© 2011 - 2023 Школа MODX
Напишите нам в Telegram