Проверка и электронная почта не работают на 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.

Это оно!

Другие вопросы по тегам