Как забрать данные с формы и отравить их письмом на определённую почту?
Есть сайт на MODX Revo 2.6.1-p, установлены FormIt и AjaxForm. Пытаюсь с помощью AjaxForm обработать форму, отправить письмо и при этом через FormIt записать обращение в админку. Вроде всё делал по мануалу, но тщетно(
В шаблон страницы запихиваю следующее:
Вот ещё код чанка формы:
В шаблон страницы запихиваю следующее:
[[!AjaxForm?
&form=`test.form`
&snippet=`FormIt`
&hooks=`email`
&emailSubject=`Тестовое сообщение`
&emailTo=`ivermak@mail.ru`
&emailFrom=`ivermak@mail.ru`
&emailTpl=`test_email`
&validate=`FIO:minLength=^2^,email:email:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
]]При этом форму AjaxForm выводит, даже происходит какая-то обработка, НО когда ввожу КОРРЕКТНЫЕ данные в форму — ругается, говоря «Форма содержит ошибки» (не «В форме содержатся ошибки!», как записано в validationErrorMessage, а именно это), а когда вместо чанка «test.form» ставлю стандартный чанк «tpl.AjaxForm.example» от AjaxForm — говорит «Форма успешно отправлена», а не «Сообщение успешно отправлено», при этом письмо ТОЖЕ НЕ отправляется и данные в админку ТОЖЕ НЕ уходят… Теряюсь в догадках, что и как это может быть… Никакие правки в AjaxForm и FormIt не вносил, всё стандартно. Подскажите пожалуйста, что делаю не так???Вот ещё код чанка формы:
<form method="post" class="main_form ajax_form">
<div class="form-wrap">
<div class="form-header">
Анкета
</div>
<div class="form-body">
<label for="position">*Желаемая должность</label>
<input type="text" id="position" name="position" class="long-input" placeholder="Например, повар" value="[[+fi.position]]">
<span class="error error_position">[[+fi.error.position]]</span>
<label for="FIO">*Ваши фамилия, имя и Отчество</label>
<input type="text" id="FIO" name="FIO" placeholder="ФИО" class="long-input" value="[[+fi.FIO]]">
<span class="error error_FIO">[[+fi.error.FIO]]</span>
<div class="form-contacts">
<div>
<label for="phone">*Ваш номер телефона</label>
<input type="text" id="phone" name="phone" placeholder="+7 (999) 999-99-99" class="short-input" value="[[+fi.phone]]">
<span class="error error_phone">[[+fi.error.phone]]</span>
</div>
<div>
<label for="email">*Ваш e-mail</label>
<input type="text" id="email" name="email" placeholder="example@mail.ru" class="short-input" value="[[+fi.email]]">
<span class="error error_email">[[+fi.error.email]]</span>
</div>
<div>
<label for="birthday">*Дата рождения</label>
<input type="text" id="birthday" name="birthday" placeholder="1 марта 1992 года" class="short-input" value="[[+fi.birthday]]">
<span class="error error_birthday">[[+fi.error.birthday]]</span>
</div>
<div>
<label for="grade">*Образование</label>
<input type="text" id="grade" name="grade" placeholder="Например: высшее, Инженер" class="short-input" value="[[+fi.grade]]">
<span class="error error_grade">[[+fi.error.grade]]</span>
</div>
</div>
<label for="place">*Место проживания: город, улица, дом, квартира</label>
<input type="text" id="place" name="place" placeholder="Владивосток, Борисенко 22, 45" class="long-input" value="[[+fi.place]]">
<span class="error_place">[[+fi.error.place]]</span>
<p class="">Место работы в обратном порядке</p>
<div class="jobs">
<div>
<label for="fired-date1">Дата приема/увольнение</label>
<input type="text" id="fired-date1" name="fired-date1" placeholder="20.03.2015 / 20.04.2016" class="short-input" value="[[+fi.fired-date1]]">
<span class="error_fired-date1">[[+fi.error.fired-date1]]</span>
</div>
<div>
<label for="organization1">Название организации</label>
<input type="text" id="organization1" name="organization1" placeholder="И.П. Гниломедов" class="short-input" value="[[+fi.organization1]]">
<span class="error_organization1">[[+fi.error.organization1]]</span>
</div>
<div>
<label for="fired-position1">Должность</label>
<input type="text" id="fired-position1" name="fired-position1" placeholder="Водитель" class="short-input" value="[[+fi.fired-position1]]">
<span class="error_fired-position1">[[+fi.error.fired-position1]]</span>
</div>
<div>
<label for="fired-date2">Дата приема/увольнение</label>
<input type="text" id="fired-date2" name="fired-date2" placeholder="20.03.2015 / 20.04.2016" class="short-input" value="[[+fi.fired-date2]]">
<span class="error_fired-date2">[[+fi.error.fired-date2]]</span>
</div>
<div>
<label for="organization2">Название организации</label>
<input type="text" id="organization2" name="organization2" placeholder="И.П. Гниломедов" class="short-input" value="[[+fi.organization2]]">
<span class="error_organization2">[[+fi.error.organization2]]</span>
</div>
<div>
<label for="fired-position2">Должность</label>
<input type="text" id="fired-position2" name="fired-position2" placeholder="Водитель" class="short-input" value="[[+fi.fired-position2]]">
<span class="error_fired-position2">[[+fi.error.fired-position2]]</span>
</div>
</div>
</div>
<!--<input type="submit" name="submit" class="submit-button" action="">-->
<button type="submit" name="submit" class="submit-button">[[%af_submit]]</button>
[[+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>
`]]
<p class="vacancies-header">*Звездочкой помечены поля, обязательные для заполнения</p>
<p class="vacancies-header">**Заполняя анкету, Вы даете согласие на обработку персональных данных</p>
</div>
</form>А это код чанка письма (возвращаю всего 1 поле для теста, чтобы все не писать):<h3>Сообщение</h3>
<p>От кого: [[+fi.FIO]]</p>
<p>E-mail: </p>
<p>Телефон: </p>
<p>Сообщение: </p> Комментарии: 8
Что бы сохранить в админку, у Formit есть хук FormItSaveForm
Добавил — толку 0, ничего не попало даже со стандартной формы AjaxForm.(( А что может быть с отправкой письма?
AjaxForm это просто обертка.
Спасибо, конечно, но в чём может быть проблема?
Спасибо, буду знать, что код верный. Но теперь я вообще в ступоре: тоже самое у тебя работает, а у меня — нет… Проверил логи самого MODX-а, там сие значится:
"[FormIt] Произошла ошибка при попытке отправить почту. Невозможно запустить функцию mail.".
Поискал инфу — может быть с хостом какие-то проблемы, ну да ладно, это можно отложить временно. Решил убрать хук отправки письма — ошибок в логах нет, и обращение тоже упало в FormIt, ура! Я читал, что если один из хуков вернул ошибку — все ПОСЛЕДУЮЩИЕ не выполнятся, но не думал, что ВООБЩЕ все не выполнятся, вне зависимости от их порядка выполнения.
Большое спасибо, уже дня 2 бьюсь с этим! Не подскажете ещё с вопросом: как мне получить в MODX файл, который пользователь прикрепляет (другая форма)???
"[FormIt] Произошла ошибка при попытке отправить почту. Невозможно запустить функцию mail.".
Поискал инфу — может быть с хостом какие-то проблемы, ну да ладно, это можно отложить временно. Решил убрать хук отправки письма — ошибок в логах нет, и обращение тоже упало в FormIt, ура! Я читал, что если один из хуков вернул ошибку — все ПОСЛЕДУЮЩИЕ не выполнятся, но не думал, что ВООБЩЕ все не выполнятся, вне зависимости от их порядка выполнения.
Большое спасибо, уже дня 2 бьюсь с этим! Не подскажете ещё с вопросом: как мне получить в MODX файл, который пользователь прикрепляет (другая форма)???
Так написано же Невозможно запустить функцию mail.
Нету почты на хостинге, либо не включена. Подключите smtp и все
Нету почты на хостинге, либо не включена. Подключите smtp и все
Да, я уже догадался, спасибо)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.