Проверка и электронная почта не работают на OctoberCMS
Моя проблема:
Я использую OctoberCMS в Azure и пытаюсь использовать плагин "Магические формы" для октября. Я использую универсальную форму, и она успешно отправляется и отображается на сервере.
Моя проблема заключается в том, что я хочу отправить уведомление по электронной почте при отправке формы, у меня есть настройка stmp и тестовое сообщение отправляется правильно, но после отправки ничего не происходит.
Моя другая проблема заключается в том, что ни одна из проверок или JsOnSuccess не запускается.
Некоторые из вещей, которые я пробовал:
Я установил свои собственные правила и свое собственное сообщение для поля имени, но ничего не изменилось.
Я попытался жестко запрограммировать все детали электронной почты, но письмо не отправляется, хотя тестовое сообщение работает.
Код моей формы:
[viewBag]
snippetCode = "formAccountingServices"
snippetName = "Form Accounting Services"
[emptyForm formAccountingServices]
group = "Accounting-Services"
rules[name] = "required"
rules[email] = "required|email"
rules[phone] = "required"
rules[service] = "required"
rules[message] = "required"
messages_success = "Your form was successfully submitted"
messages_errors = "There were errors with your submission"
mail_enabled = 1
mail_subject = "Test Subject"
mail_recipients[] = "myemail@gmail.ie"
mail_replyto = "emailFromForm@gmail.com"
reset_form = 1
redirect = "https://myHomeUrl.com"
inline_errors = "display"
js_on_success = "window.location.href = 'http://stackru.com;'"
sanitize_data = "disabled"
anonymize_ip = "disabled"
recaptcha_theme = "light"
recaptcha_type = "image"
recaptcha_size = "normal"
==
<form data-request="{{ formAccountingServices}}::onFormSubmit">
{{ form_token() }}
<div id="{{ formAccountingServices }}_forms_flash"></div>
<div class="form-group">
<label for="name">Name:</label>
<input type="text" id="name" name="name" class="form-control">
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="text" id="email" name="email" class="form-control">
</div>
<div class="form-group">
<label for="phone">Phone:</label>
<input type="text" id="phone" name="phone" class="form-control">
</div>
<div class="form-group">
<label for="service">Service of interest</label>
<select name="service" id="service" class="form-control">
<option value="Accounting Services">Accounting Services</option>
<option value="Legal Services">Legal Services</option>
</select>
</div>
<div class="form-group">
<label for="message">Message</label>
<textarea id="message" name="message" rows="8" cols="80"></textarea>
</div>
<button id="simpleContactSubmitButton" type="submit" class="btn btn-default">Submit</button>
</form>
Ожидайте результатов:
- Я ожидаю, что все поля обязательны для заполнения и если некоторые поля пусты, чтобы запретить отправку.
- после успешного заполнения формы он отправит уведомление по электронной почте на заданный адрес электронной почты и перенаправит на домашнюю страницу.
- при неудачной отправке показывать сообщение об ошибке.
Фактические результаты:
- Форма будет отправляться каждый раз, независимо от того, являются ли поля пустыми или нет.
- Уведомление по электронной почте не отправлено.
- Страница не перенаправлена.
1 ответ
Вы используете собственную тему? Магическая форма явно использует ajax. Убедитесь, что у вас есть jquery, загруженный до {% frameworks extras %}, и я не могу вспомнить, требует ли он {% scripts %} или нет.
Лучшим местом для поиска помощи для этого может быть также github для плагина https://github.com/skydiver/october-plugin-forms.
Я ПОЛУЧИЛ РЕШЕНИЕ!!
Просто поместите настройки, созданные плагином Magic Forms, следующим образом:
[viewBag]
[genericForm contactForm]
rules[name] = "required"
rules[email] = "required|email"
rules[message] = "required"
rules[tel] = "required".... etc
==
На страницу, где вводится частичный фрагмент, как это {% partial 'section/contact' %} Затем вы можете ввести компонент "contactForm" (в моем случае, конечно) в частичный 'section / contact' следующим образом {% component "contactForm" %}
ПОМНИТЕ включить {% framework extras %} в макет перед созданием сценария jQuery, чтобы включить обработчик ajax.
Это оно!