Не работает AjaxForm

Здравствуйте!
Подскажите, пожалуйста, в чем моя ошибка. Не работает 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 не прилагаю, так как это не имеет отношения к сниппету.
Буду благодарен за любую помощь. Хотел бы знать, что не так заполнено.
Заранее спасибо!
Kiten
05 августа 2018, 08:24
modx.pro
1 237
0

Комментарии: 5

Антон Тарасов
05 августа 2018, 10:57
+1
Здравствуйте!
Что в логе MODX, нет ли ошибок? Смотрели ли в конслоль браузера, все ли хорошо там? Далее — что возвращает сервер после отправки через ajax? Отправлялись ли письма ранее? Какой у вас хостер, нет ли пожелания от него использовать SMTP для отправки? Если есть сомнения в отправке как таковой попробуйте для начала компонент QuickEmail, отправит ли он тестовое письмо и какой результат?
    Kiten
    05 августа 2018, 12:16
    0
    В консоли пусто, в журнале ошибок MODX ничего нет. Насчет хостера также проверял. При использовании штатной формы, которая поставляется вместе с AjaxForm (чанк tpl.AjaxForm.example), письмо отправляется.
    Значит, ошибка в моем коде, скорее всего, в коде чанка «book».
    Я не нашел документации, как заполнять плейсхолдеры для разных полей, а в моей форме их шесть.
    Можно ли использовать такие слова:
    [[+fi.enter]]
    [[+fi.fio]]
    [[+fi.room]]
    ???
      Антон Тарасов
      05 августа 2018, 12:31
      +1
      Про плейсхолдеры вам читать про Formit, он же обрабатывает:
      https://docs.modx.com/extras/revo/formit
      Если &placeholderPrefix параметр дефолтный, то да, как вы написали выше. Даже с непереданными/неверно переданными плейсхолдерами письмо должно улетать.

      &validate=`name:required,email:required `
      тут пробел уберите. Валидация, хотя, и не включена.
    Антон Тарасов
    05 августа 2018, 12:32
    +1
    Отладка

    При возникновении любых проблем, в первую очередь проверяйте, отправляется ли форма без AjaxForm. Помните, что AjaxForm — сниппет-обёртка, он не отправляет письма и не проводит проверку формы. Это делает ваш сниппет или FormIt.

    Так же не забывайте заглядывать в консоль браузера на предмет ошибок javascript. Если сервер выдаёт ошибку 500 при отправке, проверьте параметр register_globals у вашего PHP — он должен быть отключен.
      Kiten
      05 августа 2018, 19:21
      +1
      Все заработало, когда набрал заново код. Где-то банальная опечатка была…
      Спасибо всем за внимание!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5