Проблема с FormIt

Доброго времени суток! Прошу помощи по FormIt. При вызове сниппета через AjaxForm форма выводится корректно, но при отправке сообщения все данные попадают в адресную строку и письмо не приходит.
Вот вызов сниппета:

{'!AjaxForm' | snippet:[
                'snippet' => 'FormIt',
                'form' => '@FILE chunks/contacts/contactFormItem.tpl',
                'emailTpl' => '@FILE chunks/contacts/mailContacts.tpl',
                'hooks' => 'email',
                'emailSubject' => 'Обратная связь ' ~ $_modx->config.site_name,
                'emailFrom' => 'admin@site.com',
                'emailFromName' => 'admin',
                'emailTo' => 'myemail@gmail.com',
                'validationErrorMessage' => 'Пожалуйста, исправьте ошибки!',
                'successMessage' => 'Ваше сообщение успешно отправлено',
                'submitVar'=>'sendOrder'
                ]}
Если вызвать без AjaxForm ту же форму, то она вообще не выводится. Самое главное никаких ошибок в логе вообще не возникает. На том же сервере на других сайтах с идентичными настройками все работает корректно.

Чанк формы

<form action="" method="POST" class="ajax_form af_example">
    <fieldset class="margin-bottom-md">
      <div class="margin-bottom-sm">
        <div class="grid grid-gap-sm">
          <div class="col-6@md">
            <label class="form-label margin-bottom-xxs" for="af_name">Имя</label>
            <input class="form-control width-100%" type="text" id="af_name" name="name" value="" required>
            <span class="error_name"></span>
          </div>
      
          <div class="col-6@md">
            <label class="form-label margin-bottom-xxs" for="af_email">Email</label>
            <input class="form-control width-100%" type="email" id="af_email" name="email" value="" placeholder="[[%af_label_email]]" required>
          </div>
        </div>
      </div>              
      <div>
        <label class="form-label margin-bottom-xxs" for="af_message">Сообщение</label>
        <textarea class="form-control width-100%" id="af_message" name="message"></textarea>
      </div>
    </fieldset>
    <div>
      <button type="submit" name="sendOrder" class="btn btn--primary">Отправить</button>
    </div>

    [[+fi.success:is=`1`:then=`
    <div class="alert alert-success">[[+fi.successMessage]]</div>
    `]]
    [[+fi.validation_error:is=`1`:then=`
    <div class="alert alert-danger">[[+fi.validation_error_message]]</div>
    `]]
  </form>
Чанк сообщения:

<p><b>Имя:</b> [[+name]]</p>
<p><b>Email:</b> [[+email]]</p>
<p><b>Текст сообщения:</b></p>
<p>[[+message]]</p>
Антон
23 ноября 2019, 19:00
modx.pro
1 075
0

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

Андрей
23 ноября 2019, 19:29
0
А чанк формы и чанк репорта можно посмотреть?
    Антон
    23 ноября 2019, 21:10
    0
    Все выложил выше. Совсем забыл про них)
      Андрей
      23 ноября 2019, 22:22
      +1
      Нужно убрать name у button submit, и добавить скрытый инпут с name который прописан в submitVar:
      <form action="" method="POST" class="ajax_form af_example">
      	<input type="hidden" name="sendOrder" value="1" />
      
      	<fieldset class="margin-bottom-md">
      	  <div class="margin-bottom-sm">
      	    <div class="grid grid-gap-sm">
      	      <div class="col-6@md">
      	        <label class="form-label margin-bottom-xxs" for="af_name">Имя</label>
      	        <input class="form-control width-100%" type="text" id="af_name" name="name" value="[[+fi.name]]" required>
      	        <span class="error_name"></span>
      	      </div>
      	  
      	      <div class="col-6@md">
      	        <label class="form-label margin-bottom-xxs" for="af_email">Email</label>
      	        <input class="form-control width-100%" type="email" id="af_email" name="email" value="[[+fi.email]]" placeholder="[[%af_label_email]]" required>
      	      </div>
      	    </div>
      	  </div>              
      	  <div>
      	    <label class="form-label margin-bottom-xxs" for="af_message">Сообщение</label>
      	    <textarea class="form-control width-100%" id="af_message" name="message">[[+fi.message]]</textarea>
      	  </div>
      	</fieldset>
      	<div>
      	  <button type="submit" class="btn btn-primary">Отправить</button>
      	</div>
      
      	[[+fi.success:is=`1`:then=`
      		<div class="alert alert-success">[[+fi.successMessage]]</div>
      	`]]
      	[[+fi.validation_error:is=`1`:then=`
      		<div class="alert alert-danger">[[+fi.validation_error_message]]</div>
      	`]]
      </form>

      Либо в принципе не использовать параметр submitVar, для ajaxForm он не нужен.
        Антон
        23 ноября 2019, 22:48
        0
        Не помогает, куда копать даже не знаю.
        Еще есть один нюанс, форма работает только для спам-ботов, так как письма со спамом приходят постоянно, но я не понимаю как так получается, если форма не работает.
        Вообще впервые с таким столкнулся, обычно если есть какя-то проблема, то в логах все ошибки отображаются, а тут ничего.
          Андрей
          23 ноября 2019, 23:09
          +1
          Код я проверил на действующем сайте, 100% рабочий. Попробуйте протестировать форму на пустой странице, без лишних сниппетов, скриптов и оформления, возможно в вашем случае что что стороннее мешает.
    Антон
    23 ноября 2019, 23:42
    0
    Проверил, без стилей без скриптов, все тоже самое. После отправки все данные выводит в адресной строке и все, никаких ошибок, ровно как и отправки письма.


    Куда еще можно копнуть? Какие еще логи можно посмотреть, чтобы ошибку хоть увидеть?
      Андрей
      23 ноября 2019, 23:58
      +1
      Так это потому что форма get-ом зачем то отправляется, хотя ajaxForm сам должен проставлять method=post. Вобщем то идеи кончились =) тут уже надо разбираться конкретно на вашем сайте, может плагины самописные есть, или ещё что. В ajaxForm никакие правки не вносились?
        Антон
        24 ноября 2019, 00:42
        0
        Да в том то и дело, что правок никаких не вносил, самописных плагинов тоже не делал. Вот сейчас еще проверил такая проблема, что если вызвать FormIt без AjaxForm, то он форму не выводит вообще, при этом опять ошибок в логе нет) Такое чувство, что сам FormIt отказывается работать, но почему нет ошибок тогда. Уже пробовал переустанавливать сниппеты и сам modx, ничего не меняется.
          Олег Щавелев
          24 ноября 2019, 10:05
          0
          Антон. А у Вас конслоли есть ошибки JS?
            Антон
            24 ноября 2019, 10:35
            0
            Сейчас все проверил в 2-х браузерах, консоль чистая, как до попытки отправки, так и после.
            Андрей
            24 ноября 2019, 17:08
            0
            Если есть возможность, пришлите доступы на почту (кнопка в профиле), очень интересно посмотреть на такую мистическую проблему =)
              Антон
              24 ноября 2019, 18:24
              0
              Все, нашел проблему, надо быть внимательнее) На странице тег
              <form>
              был запущен 2 раза. Переключился на другие задачи и потом еще раз посмотрел свежим взглядом все шаблоны и чанки и в итоге обнаружил то, что пропустил.
        Иван Бочкарев
        24 ноября 2019, 11:52
        0
        Проверь на наличие не закрытых div
          Антон
          24 ноября 2019, 13:48
          0
          Все закрыты
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          14