Приклади сніпета eForm для створення зворотного зв'язку, замовлення дзвінка, оформлення замовлення товарів на Evolution CMS.
Ситуація, коли треба вивести форму в модальному вікні досить часта. Виведемо форму в модальному вікні Bootstrap 3.
Модальне вікно буде виглядати приблизно так:
Чанк tplForm:
<form method="post" action="04_extras/eform/10_primery.html" name="Form" id="Form">
...
</form>
Чанк tplThank:
Ваше сообщение надіслано.
Ну і останній штрих, потрібно розмістити приблизно такий скрипт:
<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>
Створюємо приблизно такий виклик eForm, обгорнутий у діві з id ajaxContactForm - зверніть увагу що з цього id і буде вся прив'язка.
Тут звичайно можна ставити відразу форму без виклику через eForm, її ж полюбому оброботает плагін.
, - ТВ змінні сайту збережені в системній таблиці за допомогою плагіна CfgTv.
[!eForm? &formid=`contactForm` &subject=`Сообщение с сайта EvoDOC` &tpl=`formTpl` &errorTpl=`errorTpl` &report=`reportTpl` &thankyou=`thankyouTpl` &gotoid=`244` &vericode=`0` &from=`` &to=`` !]
Скрипт Ajax обробки
Створюємо плагін наприклад AjaxSubmit який спрацьовує на подію OnPageNotFound
switch($_GET['q']){
case 'ajaxContactForm':
echo $modx->runSnippet(
'eForm',
array(
'formid' => 'contactForm',
'subject' => 'Повідомлення EvoDOC',
'tpl' => 'formTpl',
'report' => 'reportTpl',
'thankyou' => 'thankyouTpl',
'errorTpl' => 'errorTpl',
'vericode' => 0,
'protectSubmit' => '0',
'from' => '',
'to' => ''
)
);
die();
break;
}