Проблемы с работой FormIt не выводятся сообщения после обработки формы.
Всем привет!
modx 3.0.3
Проблемы с настройкой формы обратной связи. Использую FetchIt с FormIt.
Сниппет отправляет письмо по электронной почте и вносит ответ в список отправленных форм пакета FormIt, но не работают вывод сообщений на странице формы и редирект после нажатия кнопки submit. При этом сообщения с ошибками валидатора выводятся штатно.
Подозреваю, что проблемы именно с FormIt, так как пробовал запускать форму через него без использования Fetchit или AjaxForm (через Ajax тоже пробовал с ним тоже не работает) с тем же результатом
Пробовал выводить на страницу сами переменные [[+fi.successMessage]] [[+fi.validation_error_message]], выводит пустоту. Пробовал настроить hook redirect, он тоже не работает. Пробовал отключать валидацию, форма добавляется, письмо отправляется, редирект не работает, сообщения не выводятся.
Никто не сталкивался с таким? Не подскажете, в чем может быть проблема?
Вызов сниппета:
modx 3.0.3
Проблемы с настройкой формы обратной связи. Использую FetchIt с FormIt.
Сниппет отправляет письмо по электронной почте и вносит ответ в список отправленных форм пакета FormIt, но не работают вывод сообщений на странице формы и редирект после нажатия кнопки submit. При этом сообщения с ошибками валидатора выводятся штатно.
Подозреваю, что проблемы именно с FormIt, так как пробовал запускать форму через него без использования Fetchit или AjaxForm (через Ajax тоже пробовал с ним тоже не работает) с тем же результатом
Пробовал выводить на страницу сами переменные [[+fi.successMessage]] [[+fi.validation_error_message]], выводит пустоту. Пробовал настроить hook redirect, он тоже не работает. Пробовал отключать валидацию, форма добавляется, письмо отправляется, редирект не работает, сообщения не выводятся.
Никто не сталкивался с таким? Не подскажете, в чем может быть проблема?
Вызов сниппета:
[[!FetchIt?
&snippet=`FormIt`
&form=`formfetchtpl`
&hooks=`email,FormItSaveForm,redirect`
&emailSubject=`Вам сообщение от сайта [[++site_name]]`
&emailTo=`[[#1.tv.email]]`
&emailTpl=`mailTpl`
&emailFrom=`robot@mail.mail`
&formName=`Сообщение из формы обратной связи`
&validate=`user:blank,name:required,email:email:required,question:required,accept:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
&redirectTo='8'
]]Код формы:<form novalidate action="[[~8]]" method="post" name="application_form" id="application_form" class="application_form">
<label for="name">Как к Вам обращаться</label>
<input type="text" name="name" id="name">
<span data-error="name">[[+fi.error.name]]</span>
<label for="user" class="application_form_imp">Пользователь</label>
<input type="text" name="user" id="user" class="application_form_imp">
<label for="email">Адрес электронной почты</label>
<input type="email" name="email" id="email">
<span data-error="email">[[+fi.error.email]]</span>
<label for="phone">Телефон (по желанию)</label>
<input type="tel" name="phone" id="phone">
<label for="question">Ваш вопрос</label>
<textarea name="question" id="question" cols="30" rows="10" maxlength="1000" wrap="hard"></textarea>
<span data-error="question">[[+fi.error.question]]</span>
<div class="application_form_checkbox">
<input type="hidden" name="accept" value="">
<input type="checkbox" name="accept" id="accept">
<label for="accept"> <div>Согласие на обработку персональных данных</div></label>
</div>
<span data-error="accept">[[+fi.error.accept]]</span>
</form>
<button type="submit" form="application_form" class="button text_button">ОТПРАВИТЬ</button>
[[+fi.success:is=`1`:then=`
<div role="alert">[[+fi.successMessage]]</div>
`]]
[[+fi.validation_error:is=`1`:then=`
<div role="alert">[[+fi.validation_error_message]]</div>
`]] Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
При всем этом у FetchIt нет никаких зависимостей, в том числе и библиотек для всплывающих уведомлений, как jgrowl у AjaxForm. Поэтому если вы хотите добавить их, то нужную библиотеку следует подключать отдельно.
Как это делается? Есть отличные примеры в документации (в принципе там все и написано)
Есть ошибки в консоли браузера на момент отправки? В логах Modx что нибудь пишется? Может хук email банально не отрабатывает?
А после его добавления появляется вот это в консоли:а вот это в логах
Для того чтобы сделать редирект с FetchIt после успешной обработки формы, тебе нужен такой код:
С этим скриптом редирект с fetchIt работает, большое спасибо!
и за ней просто для проверкиВ данный момент hook redirect не вызываю
После нажатия кнопки submit в этих сообщениях ничего не появляется. Я так понял, что в этом случае уведомления должны появляться на самой странице, собственно так и хотел реализовать. Был не прав? Так не работает? Нужно подключать дополнительные скрипты?
если я отправлю форму с незаполненным обязательным полем, то код на странице станет таким:
Если нужно что-либо самому сделать, то поможет инфа из раздела JS API. В частности FetchIt.Message