formit ajaxform
Суть проблемы в том что при реализации формы через AjaxForm страница обновляется и не проходит валидацию. ПИсьмо приходит.
шаблон вызова
И сама форма
шаблон вызова
[[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.AjaxForm`
&emailTpl=`tpl.email`
&hooks=`FormItSaveForm,email`
&emailSubject=`test`
&emailTo=`test@gmail.com`
&validate=`name:required,surname:required,phone:isNumber:required,email:email:required,message:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
]]
<form action="" id="commentForm" method="post" class="cmxform">
<h2 class="feedback">[[++cultureKey:is=`ru`:then=`Обратная связь`:else=`[[++cultureKey:is=`ua`:then=`Зворотній звязок`:else=`Contact Us`]]`]]<a href="javascript:PopUpHide()" class="close__form">✖</a></h2>
<h3 class="sec__feedback">[[++cultureKey:is=`ru`:then=`Как к Вам обращаться?`:else=`[[++cultureKey:is=`ua`:then=`Як до Вас звертатись?`:else=`How can contact you?`]]`]]</h3>
<div class="form__name">
<input type="text" id="name" name="name" class="form-control" placeholder="[[++cultureKey:is=`ru`:then=`Имя`:else=`[[++cultureKey:is=`ua`:then=`Ім'я`:else=`First name`]]`]]" >
</div>
<div class="form__sur">
<input type="text" id="surname" name="surname" class="form-control" placeholder="[[++cultureKey:is=`ru`:then=`Фамилия`:else=`[[++cultureKey:is=`ua`:then=`Фамілія`:else=`Second name`]]`]]" >
</div>
<div class="form__phone">
<input type="text" id="phone" name="phone" class="form-control" placeholder="[[++cultureKey:is=`ru`:then=`Телефон`:else=`[[++cultureKey:is=`ua`:then=`Телефон`:else=`Phone`]]`]]" >
</div>
<div class="form__mail">
<input type="text" id="email" name="email" class="form-control" placeholder="Email" >
</div>
<div class="form__mes">
<textarea id="message" name="message" rows="5" columns="5" class="form-control" placeholder="[[++cultureKey:is=`ru`:then=`Сообщение`:else=`[[++cultureKey:is=`ua`:then=`Повідомлення`:else=`Message`]]`]]"></textarea>
</div>
<input type="submit" class="other__button__form">[[++cultureKey:is=`ru`:then=`Заказать звонок`:else=`[[++cultureKey:is=`ua`:then=`Замовити звінок`:else=`Submit`]]`]]</input>
[[+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>
Комментарии: 16
Измените раздел на вопросы
По существу — у вас поди head или body не закрыт
По существу — у вас поди head или body не закрыт
От части помогло, сам не заметил. Теперь 500я от ajaxform/action.php
500 надо смотреть в серверном error.log, там должна быть указана ошибка.
Смотрел, там только дубликаты ресурсов. Больше ничего не было, нашёл в интернете способ поставить register_globals Off, но увы это не помогло. В чём может быть проблема?
Дубликаты ресурсов это в логе modx вероятно. А нужно смотреть именно серверный лог на хостинге.
а где он лежит не подскажите? я смотрел в core/cache/logs
Это зависит от вашего хостинга, везде по разному. Если не найдёте сами, можете задать вопрос в техподдержку.
логи сервера не имеют отношения к сайту и не могут (ну по крайней мере не должны) лежать в его директориях.
Все зависит исключительно от того какой у вас сервер (apache, nginx) от того настраивали его вы сами или специалисты хостинга.
Вы можете либо сами имея доступ ssh к серверу посмотреть файлы конфигурации вебсервера или же написать в службу поддержки хостинга.
Все зависит исключительно от того какой у вас сервер (apache, nginx) от того настраивали его вы сами или специалисты хостинга.
Вы можете либо сами имея доступ ssh к серверу посмотреть файлы конфигурации вебсервера или же написать в службу поддержки хостинга.
Как так — страница обновляется и не проходит валидацию.
Раз вы вызываете ajaxform значит отправка формы должна проходить без перезагрузки страницы.
Попробуйте открыть консоль браузера и смотреть ошибки js, у вас явно что с jquery, может у вас крутой проект на vuejs а ajaxform требует jquery насколько я помню.
Лично мне не нравится что у вас в вызове ajaxform не переданы параметры — отправитель письма и имя отправителя. очень много раз встречался что если эти параметры не переданы, письма просто не доходят, но раз вы говорите что письмо приходит, то ройте только в ошибки со стороны js.
Раз вы вызываете ajaxform значит отправка формы должна проходить без перезагрузки страницы.
Попробуйте открыть консоль браузера и смотреть ошибки js, у вас явно что с jquery, может у вас крутой проект на vuejs а ajaxform требует jquery насколько я помню.
Лично мне не нравится что у вас в вызове ajaxform не переданы параметры — отправитель письма и имя отправителя. очень много раз встречался что если эти параметры не переданы, письма просто не доходят, но раз вы говорите что письмо приходит, то ройте только в ошибки со стороны js.
Ну и кстати, мне не раз здесь говорили на форуме знающие люди, что не нужно добавлять форме класс ajax_form? но я всегда добавляю и это часто решает много проблем. попробуйте и вы
<form action="" id="commentForm" method="post" class="cmxform ajax_form">
проблема была не в закрытом html теге, видать аякс не отрабатывал до конца
Сниппет ajaxForm сам добавляет класс если не указан, никогда с этим проблем не было.
// Add selector to tag form
if (preg_match('#<form.*?class=(?:"|\')(.*?)(?:"|\')#i', $content, $matches)) {
$classes = explode(' ', $matches[1]);
if (!in_array($formSelector, $classes)) {
$classes[] = $formSelector;
$classes = preg_replace(
'#class=(?:"|\')' . $matches[1] . '(?:"|\')#i',
'class="' . implode(' ', $classes) . '"',
$matches[0]
);
$content = str_ireplace($matches[0], $classes, $content);
}
} else {
$content = str_ireplace('<form', '<form class="' . $formSelector . '"', $content);
}
Вы правы, но я добавляю сам руками. Мне так спокойнее что ли.
Еще поменьше используйте test в названии ящиков, тексте и т.п. Особо умные хосты или хуки форм могут тупо блочить отправку, причем не сообщая визуально никак об этом :)
письма приходят, проблема была в не закритом хтмл, а сейчас проблема что файл по пути ajaxform/action.php недоступен
Проблема была в правах доступа на файл
П.С. логи сервера тоже ничего не дали, проверял методом тыка. Хостинг ukraine
П.С. логи сервера тоже ничего не дали, проверял методом тыка. Хостинг ukraine
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.