передача данных из js в чанк FormIt
Добрый день, знатоки! У меня вопрос к вам, почему не работает такой код. В скрипте в чанке шапки сайта подключаю такой скрипт:
Как видно вызывается чанк handlerTpl, в нем прописаны те блоки, которые я заполнил в jquery скрипте:
А тут все работает: jsfiddle.net/51z4u4uo/1/
$(".kol_vo_comps" ).text("проверка1");
$(".kol_vo_servers" ).text("проверка2");
$(".cost_zakaz" ).text("проверка3");Вызываю сниппет FormIt: [[!FormIt? &hooks=`email,redirect` &emailTpl=`handlerTpl` &emailSubject=`Сообщение` &emailTo=`тут_мой_ящик` &redirectTo=`1`]]Как видно вызывается чанк handlerTpl, в нем прописаны те блоки, которые я заполнил в jquery скрипте:
<dd><span class="kol_vo_comps"></span></dd>
<dt>Количество серверов:</dt>
<dd><span class="kol_vo_servers"></span></dd>
<dt>Стоимость заказа:</dt>
<dd><span class="cost_zakaz"></span></dd>По идее, туда должны попадать значения, но не попадают. Почему? Когда пишу такой скрипт в песочнице, то все работает. Это что особенность ModX или компонента FormIt?А тут все работает: jsfiddle.net/51z4u4uo/1/
Комментарии: 10
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
обернут он соответственно таким образом:
А в чанке лежат блоки такие:
На примере jsfiddle.net/51z4u4uo/1/ тут все работает, когда же в modx делаю, то не работает. Может это связанно с тем, что идет вызов сниппета FormIt поздний, когда скрипт js уже отработал отправку значений и не нашел таких span'ов? Мне кажется, причина в этом… Как исправить такую ситуацию?
Ради тестов можно поставить задержку на выполнение или вызвать самому после загрузки…
Если не ошибаюсь, если подключать форм через аякс то событие должно быть $(document).on('as_complete', document, function(e,d) {} или $(document).ajaxStop(function(){}
Чанк получается из БД, FormIt подставляет там плейсхолдеры и отправляет его юзеру. Ни фронтенда, ни javascript, ничего там нет. Я даже не уверен, что этот чанк проходит через парсер MODX.
На javascript ты можешь поменять только значения отправляемой юзером формы. После отправки формы javascript нету.
А в чанке моем написано следующее:
И туда успешно заливаются данные, в чем разница между первым примером и вторым?
Или чанк который вызывается из [[!FormIt? &hooks=`email,redirect` &emailTpl=`handlerTpl` &emailSubject=`Сообщение` &emailTo=`тут_мой_ящик` &redirectTo=`1`]] обрабатывается как-то иначе, чем чанки (хотя и те, и другие вызываются из БД), которые включены в шаблоны… Как тогда передать из js в этот чанк инфу?
и так далее. Сниппет FormIt обработает этот чанк, просто подставив полученные от клиента через POST данные и отправит вывод на почту.
Чанк handlerTpl не выводится клиенту, он не обрабатывается javascript. Он получается из БД и сразу улетает на почту.
Всё.
2. вставьте какой нибудь алерт в этот блок, убедитесь что скрипт точно выполнятеся(а вдруг :) )
3. шаблон формы не грузится ведь через ajax?
мне кажется ему (integralal ) на клиенте надо просто проставить дефолтовые значения