Приклади

    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;
    }