Приклади

eForm: Приклади

Приклади сніпета eForm для створення зворотного зв'язку, замовлення дзвінка, оформлення замовлення товарів на Evolution CMS.

eForm в модальному вікні

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

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



Чанк tplForm:

<form method="post" action="[~[*id*]~]" 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 Ajax Submit

Створюємо приблизно такий виклик eForm, обгорнутий у діві з id ajaxContactForm - зверніть увагу що з цього id і буде вся прив'язка.

Тут звичайно можна ставити відразу форму без виклику через eForm, її ж полюбому оброботает плагін.

[(cfg_from)], [(cfg_email)] - ТВ змінні сайту збережені в системній таблиці за допомогою плагіна CfgTv.

[!eForm? &formid=`contactForm` &subject=`Сообщение с сайта [(site_name)]` &tpl=`formTpl` &errorTpl=`errorTpl` &report=`reportTpl` &thankyou=`thankyouTpl` &gotoid=`244` &vericode=`0` &from=`[(cfg_from)]` &to=`[(cfg_email)]` !]

Скрипт Ajax обробки


Створюємо плагін наприклад AjaxSubmit який спрацьовує на подію OnPageNotFound

switch($_GET['q']){
    case 'ajaxContactForm':
        echo $modx->runSnippet(
            'eForm',
            array(
                'formid' => 'contactForm',
                'subject' => 'Повідомлення [(site_name)]',
                'tpl' => 'formTpl',
                'report' => 'reportTpl',
                'thankyou' => 'thankyouTpl',
                'errorTpl' => 'errorTpl',
                'vericode' => 0,
                'protectSubmit' => '0',
                'from' => '[(cfg_from)]',
                'to' => '[(cfg_email)]'
            )
        );
        die();
    break;
}