Не работает AjaxForm
Здравствуйте!
Подскажите, пожалуйста, в чем моя ошибка. Не работает AjaxForm.
Чанк формы:
Чанк Email:
CSS не прилагаю, так как это не имеет отношения к сниппету.
Буду благодарен за любую помощь. Хотел бы знать, что не так заполнено.
Заранее спасибо!
Подскажите, пожалуйста, в чем моя ошибка. Не работает AjaxForm.
Чанк формы:
<form action="" method="post" class="ajax_form af_example">
<div class="book">
<div class="book-row">
<div class="book-row-col">
<p><span class="book-lbl">ЗАЕЗД</span> </p>
<p><input id="enter" type="text" name="enter" value="[[+fi.enter]]" class="datepicker"/></p>
<p><span class="book-lbl">ФИО</span> </p>
<p><input id="fio" type="text" name="fio" value="[[+fi.fio]]" class="standart-input"/></p>
<p><span class="book-lbl">Email</span> </p>
<p><input id="email" type="text" name="email" value="[[+fi.email]]" class="standart-input"/></p>
</div>
<div class="book-row-col">
<p><span class="book-lbl">ВЫЕЗД</span> </p>
<p><input id="out" type="text" name="out" value="[[+fi.out]]" class="datepicker"/></p>
<p><span class="book-lbl">Телефон</span> </p>
<p><input id="phone" type="text" name="phone" value="[[+fi.phone]]" class="standart-input"/></p>
<p><span class="book-lbl">Номер</span> </p>
<p>
<select id="room" name="room" type="text"/>
<option value="double" [[!+fi.room:FormItIsSelected=`double`]]>Дабл</option>
<option value="twin" [[!+fi.room:FormItIsSelected=`twin`]]>Твин</option>
<option value="tripple" [[!+fi.room:FormItIsSelected=`tripple`]]>3-местный</option>
<option value="pkdouble" [[!+fi.room:FormItIsSelected=`pkdouble`]]>ПК Дабл</option>
<option value="pktwin" [[!+fi.room:FormItIsSelected=`pktwin`]]>ПК Твин</option>
<option value="luxe" [[!+fi.room:FormItIsSelected=`luxe`]]>Люкс</option>
<option value="studio" [[!+fi.room:FormItIsSelected=`studio`]]>Студия</option>
</select>
</p>
</div>
</div>
<button type="submit" class="btn btn-primary">[[%af_submit]]</button>
</div>
</form>
Чанк Email:
<h3>Сообщение</h3>
<p>От кого: [[+fio]]</p>
<p>Заезд: [[+enter]]</p>
<p>Выезд: [[+out]]</p>
<p>E-mail: [[+email]]</p>
<p>Телефон: [[+phone]]</p>
<p>Номер: [[+room]]</p>
Вызов сниппета:[[AjaxForm?
&snippet=`FormIt`
&form=`book`
&emailTpl=`email`
&hooks=`email`
&emailSubject=`Тестовое сообщение`
&emailTo=`shutruk@gmail.com`
&successMessage=`Сообщение успешно отправлено`
&validate=`name:required,email:required `
&validationErrorMessage=`В форме содержатся ошибки!` ]]
При нажатии выдает сообщение об успешной отправке, но письма не приходят.CSS не прилагаю, так как это не имеет отношения к сниппету.
Буду благодарен за любую помощь. Хотел бы знать, что не так заполнено.
Заранее спасибо!
Комментарии: 5
Здравствуйте!
Что в логе MODX, нет ли ошибок? Смотрели ли в конслоль браузера, все ли хорошо там? Далее — что возвращает сервер после отправки через ajax? Отправлялись ли письма ранее? Какой у вас хостер, нет ли пожелания от него использовать SMTP для отправки? Если есть сомнения в отправке как таковой попробуйте для начала компонент QuickEmail, отправит ли он тестовое письмо и какой результат?
Что в логе MODX, нет ли ошибок? Смотрели ли в конслоль браузера, все ли хорошо там? Далее — что возвращает сервер после отправки через ajax? Отправлялись ли письма ранее? Какой у вас хостер, нет ли пожелания от него использовать SMTP для отправки? Если есть сомнения в отправке как таковой попробуйте для начала компонент QuickEmail, отправит ли он тестовое письмо и какой результат?
В консоли пусто, в журнале ошибок MODX ничего нет. Насчет хостера также проверял. При использовании штатной формы, которая поставляется вместе с AjaxForm (чанк tpl.AjaxForm.example), письмо отправляется.
Значит, ошибка в моем коде, скорее всего, в коде чанка «book».
Я не нашел документации, как заполнять плейсхолдеры для разных полей, а в моей форме их шесть.
Можно ли использовать такие слова:
[[+fi.enter]]
[[+fi.fio]]
[[+fi.room]]
???
Значит, ошибка в моем коде, скорее всего, в коде чанка «book».
Я не нашел документации, как заполнять плейсхолдеры для разных полей, а в моей форме их шесть.
Можно ли использовать такие слова:
[[+fi.enter]]
[[+fi.fio]]
[[+fi.room]]
???
Про плейсхолдеры вам читать про Formit, он же обрабатывает:
https://docs.modx.com/extras/revo/formit
Если &placeholderPrefix параметр дефолтный, то да, как вы написали выше. Даже с непереданными/неверно переданными плейсхолдерами письмо должно улетать.
https://docs.modx.com/extras/revo/formit
Если &placeholderPrefix параметр дефолтный, то да, как вы написали выше. Даже с непереданными/неверно переданными плейсхолдерами письмо должно улетать.
&validate=`name:required,email:required `
тут пробел уберите. Валидация, хотя, и не включена. Отладка
При возникновении любых проблем, в первую очередь проверяйте, отправляется ли форма без AjaxForm. Помните, что AjaxForm — сниппет-обёртка, он не отправляет письма и не проводит проверку формы. Это делает ваш сниппет или FormIt.
Так же не забывайте заглядывать в консоль браузера на предмет ошибок javascript. Если сервер выдаёт ошибку 500 при отправке, проверьте параметр register_globals у вашего PHP — он должен быть отключен.
Все заработало, когда набрал заново код. Где-то банальная опечатка была…
Спасибо всем за внимание!
Спасибо всем за внимание!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.