AjaxForm: не отправляет письма
Комментарии: 13
[[*id]]]]» поставила, результат тот же((
Вы что не видите, что не в нем дело? весь код скопируйте
Ваш код
Мой код
А этот код, что бы форма проходила валидацию
Ну, каких то вопиющих ошибок в коде/вызове я не обнаружил, разве что:
— насторожило.
Если у вас возвращается положительный ответ, то, скорее всего проблема не в форме (тем более, что ajaxform просто обертка для обработки formlt), а в последующих действиях:
— попадает ли что-нибудь в лог?
— есть ли ошибки в консоли?
— чем у вас отправляются письма — smtp?
— возможно, письма просто ушли в спам?
+ могу еще поррекомендовать выставить &emailFrom и &hooks=`email` — на некоторых хостингах замечал такую багу, что без его указание форма обрабатывалась некорректно.
И да, напрямую к делу не относится, просто интересуюсь — у вас корректно отрабатывает этот код:
Источник
Не работает AjaxForm
[/code] Вызов сниппета: [code] [[AjaxForm? &snippet=`FormIt` &form=`book` &emailTpl=`email` &hooks=`email` &emailSubject=`Тестовое сообщение` &emailTo=`shutruk@gmail.com` &successMessage=`Сообщение успешно отправлено` &validate=`name:required,email:required ` &validationErrorMessage=`В форме содержатся ошибки!` ]] [/code] При нажатии выдает сообщение об успешной отправке, но письма не приходят. CSS не прилагаю, так как это не имеет отношения к сниппету. Буду благодарен за любую помощь. Хотел бы знать, что не так заполнено. Заранее спасибо!»>
Anton Tarasov
MODX Developer
Email: contact@antontarasov.com
Web: antontarasov.com
Здравствуйте!
Что в логе MODX, нет ли ошибок? Смотрели ли в конслоль браузера, все ли хорошо там? Далее — что возвращает сервер после отправки через ajax? Отправлялись ли письма ранее? Какой у вас хостер, нет ли пожелания от него использовать SMTP для отправки? Если есть сомнения в отправке как таковой попробуйте для начала компонент QuickEmail, отправит ли он тестовое письмо и какой результат?
При использовании штатной формы, которая поставляется вместе с AjaxForm (чанк tpl.AjaxForm.example), письмо отправляется.
Anton Tarasov
MODX Developer
Email: contact@antontarasov.com
Web: antontarasov.com
Quote from: butcher at Aug 05, 2018, 09:18 AM
При использовании штатной формы, которая поставляется вместе с AjaxForm (чанк tpl.AjaxForm.example), письмо отправляется.
Ну так может давайте просто их и сравним, если больше различий нет. Не думаю, что дело только в чанке, он быть хоть какой-нибудь, но приходил.
Давайте итеративно, какой вызов работает точно — сюда кидайте, и сравним с тем вызовом выше, что не работает.
НИЧЕГО НЕ ПОНИМАЮ.
Сейчас начало работать. Все, как я хотел.
Самое интересное, уже не помню, что делал!
Набирал заново вызов формы и что-то в чанке.
Говорят, MODX не любит пробелы.
В-общем, сейчас все работает.
Спасибо всем.
Anton Tarasov
MODX Developer
Email: contact@antontarasov.com
Web: antontarasov.com
Don’t have a MODX.com account? Create one
In the time it takes to read this, you could start a new site with nothing to download or install.
Don’t Be That Guy
Be nice, respectful and patient. Inflammatory or inappropriate posts will get your post nuked and flood your life with bans and bad karma.
Thank the People that Help
Remember, this is an Open Source project and the volunteers here assist out of love for the project and a desire to help others.
Источник
AjaxForm не отправляет письма
Хотел сделать на сайте контактную форму и решил использовать, AjaxForm c FormIt.
Но возникла проблема, он не отправляет сообщения, если не заполнять пункты ошибка самого Ajax (в виде красного окошка) не выводится (только подсвечивание красным само поле). В FormIt(тот что в админке) оповещение о отправке формы нет.
Чанк:
AjaxForm:
tpl.email:
Помогите, люди добрые.
Комментарии: 19
В error логах жалоба на » modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.»
Это информация для разработчиков. Можно отключить в системных настройках опцию — log_deprecated, чтоб не мешалось.
Сообщение на почту не пришло. Хотя плагин написал что сообщение отправлено.
В спаме смотрели? Какой хостинг провайдер?
На некоторых хостингах нужно чтобы ящик с которого идёт отправка существовал физически. Если не решите проблему и есть возможность, присылайте доступы в личку, посмотрим на вашу проблему изнутри =)
С мастерхостом в плане почты проблем не было, попробуйте тогда написать в техподдержку.
p.s. Если домен указанный в emailFrom реальный, он делегирован на серверы Яндекса, что можно сделать только после подключения почты для домена. Вариант проверить все настройки (MX записи и т.п.), и можно настроить отправку почты через smtp.
Может к ним нужно подключать отдельно какие то js/css библиотеки?
Нашёл проблему. Она была в подключаемой bundle.js. Без неё форма работает исправно, но дело в том что она(bundle.js) жизненно необходима самому сайту (ибо ребята которые делали шаблон так решили) сам же сайт не подключается к jquery.
И совсем никаких ошибок в консоли браузера не выводит при подключённом bundle.js?
(Копировать её в комментарий чистой воды издевательство, возможно как то файлик перекинуть?)
Файл можно закинуть на любое файлохранилище и приложить ссылку.
Может есть другие контактные формы? Можете какие то посоветовать?
Источник
Modx ajax form не работает
У MODX Revolution есть хороший компонент для форм — FormIt. Меня он всем устраивает, за исключением одного — отсутствия работы с ajax.
Проблема старая, решалась сотней разных способов на сотне разных сайтах, и просто не захотелось велосипедить в сто первый.
Следуя известной мудрости «лучше день потерять потом за пять минут долететь«, я взял и написал новый бесплатный компонент AjaxForm.
Сниппет работает просто:
- Регистрирует нужные скрипты на фронтенде (jQuery.Form и jQuery.jGrowl)
- Сохраняет в сессию $scriptProperties при вызове сниппета
- Выводит указанную форму, прописывая класс ajax_form и скрытый input для получения $scriptProperties
- Вешает обработчик на форму, чтобы она отправлялась через ajax
- При отправке запускает указанный сниппет для обработки и возвращает ответ от него
- Выводит сообщение об успехе, или ошибки, если есть
По умолчанию все рассчитано на работу с FormIt, но можно указать и собственный сниппет.
Пример вызова для FormIt:
Для вывода сообщений об ошибке заполнения поля, скрипт ищет в форме блок с классом error_имяполя и вставляет в него сообщение (см. дефолтный чанк).
При повторной отправке формы эти сообщения удаляются.
По идее, можно менять все вызовы FormIt на рабочих сайтах, просто оборачивая их в AjaxSubmit и перенося форму со страницы в чанк — должно работать.
Конечно вы можете использовать и собственный сниппет, который будет делать что угодно (хоть создавать страницы на сайте) и должен возвращать JSON массив с ключами:
- status — 1 или 0, то есть успех или ошибка
- message — сообщение о работе сниппета
- data — массив для полей с ошибками, в котором ключами является имя поля, а значением — сообщение об ошибке
Для удобства работы в параметры сниппета передаётся переменная $AjaxForm с классом компонента. Советую вызывать из него методы error и success при выдаче ответа.
Простейший пример своего сниппета:
В общем, качаем, тестируем, пишем отзывы.
Это бета-версия, написана целиком за сегодня и, скорее всего, содержит ошибки.
Кстати
Сниппет можно использовать еще одним интересным образом — просто вызвав его на странице, вы получаете подключенный jQuery.jGrowl и можете легко показывать приятные всплывающие уведомления на javascript:
Вторым параметром можно указать «прилипающий» popup — его нужно будет закрыть вручную, бывает полезно для показа серьёзных ошибок.
Источник
Modx ajax form не работает
У MODX Revolution есть хороший компонент для форм — FormIt. Меня он всем устраивает, за исключением одного — отсутствия работы с ajax.
Проблема старая, решалась сотней разных способов на сотне разных сайтах, и просто не захотелось велосипедить в сто первый.
Следуя известной мудрости «лучше день потерять потом за пять минут долететь«, я взял и написал новый бесплатный компонент AjaxForm.
Сниппет работает просто:
- Регистрирует нужные скрипты на фронтенде (jQuery.Form и jQuery.jGrowl)
- Сохраняет в сессию $scriptProperties при вызове сниппета
- Выводит указанную форму, прописывая класс ajax_form и скрытый input для получения $scriptProperties
- Вешает обработчик на форму, чтобы она отправлялась через ajax
- При отправке запускает указанный сниппет для обработки и возвращает ответ от него
- Выводит сообщение об успехе, или ошибки, если есть
По умолчанию все рассчитано на работу с FormIt, но можно указать и собственный сниппет.
Пример вызова для FormIt:
Для вывода сообщений об ошибке заполнения поля, скрипт ищет в форме блок с классом error_имяполя и вставляет в него сообщение (см. дефолтный чанк).
При повторной отправке формы эти сообщения удаляются.
По идее, можно менять все вызовы FormIt на рабочих сайтах, просто оборачивая их в AjaxSubmit и перенося форму со страницы в чанк — должно работать.
Конечно вы можете использовать и собственный сниппет, который будет делать что угодно (хоть создавать страницы на сайте) и должен возвращать JSON массив с ключами:
- status — 1 или 0, то есть успех или ошибка
- message — сообщение о работе сниппета
- data — массив для полей с ошибками, в котором ключами является имя поля, а значением — сообщение об ошибке
Для удобства работы в параметры сниппета передаётся переменная $AjaxForm с классом компонента. Советую вызывать из него методы error и success при выдаче ответа.
Простейший пример своего сниппета:
В общем, качаем, тестируем, пишем отзывы.
Это бета-версия, написана целиком за сегодня и, скорее всего, содержит ошибки.
Кстати
Сниппет можно использовать еще одним интересным образом — просто вызвав его на странице, вы получаете подключенный jQuery.jGrowl и можете легко показывать приятные всплывающие уведомления на javascript:
Вторым параметром можно указать «прилипающий» popup — его нужно будет закрыть вручную, бывает полезно для показа серьёзных ошибок.
Источник