Несколько форм на одной странице AjaxForm [Решено]
На странице выводится список услуг (дочерние ресурсы) c кнопкой ЗАКАЗАТЬ
Как реализовать чтобы в сабжах отправляемых писем вставлялся {$pagetitle} ресурса соответствующей услуги
Вызов AjaxForm:
Как реализовать чтобы в сабжах отправляемых писем вставлялся {$pagetitle} ресурса соответствующей услуги
{'!pdoPage' | snippet : [
'ajaxMode' => 'default',
'tpl' => '@INLINE
***
<h2 class="media-heading">{$pagetitle}</h2>
***
<button type="button" class="btn btn-secondary btn-lg btn-block" data-toggle="modal" data-target="#adviceModal">ЗАКАЗАТЬ</button>
***
{$content}
***',
'limit' => 10,
'includeTVs' => 'img',
'tvPrefix' => '',
'includeContent' => 1,
]}По клику на кнопку ЗАКАЗАТЬ открываются модальные окна BootstrapВызов AjaxForm:
[[!AjaxForm?
&snippet=`FormIt`
&form=`kontact-form`
&emailTpl=`tpl-kontact-form`
&hooks=`spam,email`
&emailSubject=`Сообщение с сайта [[++site_url]]`
&emailTo=`***@gmail.com`
&validate=`name:required,email:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено!`
]]Решение в комменте ниже Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
По поводу модального окна, вешаешь событие af_complete и в нём запускаешь модальное окно.
docs.modx.pro/komponentyi/ajaxform#%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B5-af_complete
1. в каком чанке нужно прописать?
Если прописываю в
получаю только заглавие страницы списка услуг в форме.
2. «вешаешь событие af_complete» — куда его «вешать»?
Я думал нужно здесь что-то менять:
Чтобы в заголовке письма вместо «Сообщение с сайта...» был указан нужный pagetitle дочернего ресурса.
Тогда…
Параметр successMessage лежит в сессии в массиве AjaxForm => Ключ Формы => successMessage
Ключ формы лежит в элементе input с именем af_action
Вижу такой вариант, что перед открытием формы мы посылаем ajax запрос с заголовком и ключом формы, который нам нужно отображать в сабже письма. Собственно, присваиваем в сессию параметру successMessage тот заголовок, который мы передали по ajax. Модальное окно открывается, спокойно заполняем форму и письмо приходит уже с этим заголовком.
В чанк kontact-form добавляем скрытое поле:
Добавляем в кнопку обработчик клика onclick=«getItem('{$pagetitle}');»:
и выносим в вызове pdoPage в чанк, либо заменяем ('{$pagetitle}') на (\'{$pagetitle}\')
Добавляем где-нибудь на странице функцию:
В вызов ajaxForm прописываем:
у меня сработало.