21 дек. 2013 г., 19:44

[Решено] Замена formit

Добрый день! Не особо гибкий formit заставил искать более удобное решение jquery валидация формы + оттправка по ajax post-ом данных в php файл и отправка там через phpmail вот мой код //jquery
<script> $(function() { // Validation $("#form_ask").validate( { // Rules for form validation rules: { name: { required: true }, email: { required: true }, ask_area: { required: true } }, // Messages for form validation messages: { name: { required: 'Пожалуйста, введите ФИО', }, email: { required: 'Пожалуйста, введите ваш email', }, ask_area: { required: 'Пожалуйста, введите вопрос', } }, // Ajax form submition submitHandler: function(form) { $.ajaxSetup({cache: false}); $.post('/assets/ajax/ask_send.php', { name: $('#form_ask input[name="name"]').val(), email: $('#form_ask input[name="email"]').val(), phone: $('#form_ask input[name="tel"]').val(), ask_area: $('#form_ask input[name="ask_area"]').val() }).done(function(data) { $("#form_ask input").val(''); $("#form_ask textarea").val(''); $("#form_ask .suc_mess").slideDown('800').delay(2000).slideUp('800'); }).fail(function() { }); return false; } }); }); </script>
//форма
<form id="form_ask" method="post" action="http://format.rezzzz.com/assets/ajax/ask_send.php" novalidate="novalidate"> <div class="suc_mess">Ваш вопрос успешно отправлен</div> <label>ФИО<span>*</span></label> <span class="error">[[!+fi.error.name]]</span> <input type="text" name="name"> <label>E-mail<span>*</span></label> <span class="error">[[!+fi.error.email]]</span> <input type="email" name="email"> <label>Телефон</label> <span class="error">[[!+fi.error.tel]]</span> <input type="tel" name="tel"> <label>Вопрос<span>*</span></label> <span class="error">[[!+fi.error.ask_area]]</span> <textarea name="ask_area"></textarea> <div class="formBtnWrap"> <button type="submit" class="greyBtnSkin">Отправить</button> </div> </form>
// php файл
<?php //require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php'); // Review data if($_POST['name']) { $name = $_POST['name']; } if($_POST['email']) { $email = $_POST['email']; } if($_POST['phone']) { $phone = $_POST['phone']; } if($_POST['ask_area']) { $ask_area = $_POST['ask_area']; } $message = ' <div align="left"><table width="100%"> <tr width="100%"> <td width="40%" style="padding: 5px 0;" valign="top"><b>Имя</b></td> <td width="60%" style="padding: 5px 0;" valign="top">' . $name . '</td> </tr> <tr width="100%"> <td width="40%" style="padding: 5px 0;" valign="top"><b>E-mail</b></td> <td width="60%" style="padding: 5px 0;" valign="top">' . $email . '</td> </tr>'; $message .= ' <tr width="100%"> <td width="40%" style="padding: 5px 0;" valign="top"><b>Телефон</b></td> <td width="60%" style="padding: 5px 0;" valign="top">' . $phone . '</td> </tr> ' $message .= '<tr width="100%"> <td width="40%" style="padding: 5px 0;" valign="top"><b>Вопрос</b></td> <td width="60%" style="padding: 5px 0;" valign="top">' . $ask_area . '</td> </tr> </table></div>'; // Mail settings // $to = get_field('почта','option'); $to = 'nirfrost5@gmail.com'; $subject = 'Новый отзыв'; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=UTF-8"; $headers .= "From: $name <$email>\r\n"; $headers .= "Cc: $email\r\n"; $headers .= "Bcc: $email\r\n"; mail($to, $subject, $message, $headers); ?>
но что то не отправляет письма что не так можете подсказать?
но что то не отправляет письма что не так
1. Проверьте просто отправку писем через mail() — можете это сделать прям в консоли (вполне вероятно, он у вас уже на сайте установлена). Дело в том, что у вас может просто отправка почты таким образом не работать (не стоит sendmail или типа того). 2. Замените строчку mail($to, $subject, $message, $headers); на
if(!mail($to, $subject, $message, $headers)){ $modx->log(xPDO::LOG_LEVEL_ERROR, "Не удалось отправить письмо"); }
Это вам позволит убедиться в том, что логической ошибки нет (то есть письмо действительно должно было отправляться), но функция mail() не была успешно выполнена.
Вот на это у тебя дебаггер браузера часом не ругается?
$.ajaxSetup({cache: false});<s></s>
нет все чисто
formit то отсылает письма так что все phpmail работает
Не верю. У тебя чистый js в этом блоке, а там у тебя html-тег появился. Если браузер не ругается, то ты видимо при создании топика привел код с ошибкой.
[2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:18] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:44:20] (ERROR @ /assets/components/tag_manager/connector_fe.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-21 22:50:44] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-22 00:28:39] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl() [2013-12-22 00:28:39] (ERROR @ /index.php) `[[+resource_id]]` is not a valid integer and may not be passed to makeUrl()
вот логи
formit скорее всего работает через phpMailer, который в свою очередь использует sendmail или типа того, а не функцию mail() в чистом виде. Так что смотрите логи php что там у вас не так, и попробуйте внимательно изучить что там использует fromit для отправки писем.
1. Проверьте просто отправку писем через mail() — можете это сделать прям в консоли (вполне вероятно, он у вас уже на сайте установлена). Дело в том, что у вас может просто отправка почты таким образом не работать (не стоит sendmail или типа того).
Это проверили или нет? Отправляются письма через mail() в ручном режиме?
Эти логи ни о чем вообще (это ошибки MODX-парсера, которые к mail() не имеют никакого отношения). Вы смотрите логи самого php.
какойо еще html код? это форумский редактор тут сам это вставил
Возможно случайно добавился HTML. Убрал из листинга. В итоге, чистый вызов mail() работает или нет? С проблемой разобрались?
не работает( а логах php ничего нет по ошыбкам( может что нудно от modx api а php файле подключить?
Значит больше ничем просто так не сможем помочь. Может быть что угодно. Могу только предложить платную помощь на вашем сервере (по нашему прайсу — 500 руб/час). Скорее всего за час (максимум два) все это решается. Если интересно, присылайте доступы к админке в личку.
хорошо спасибо
Решено. Проблема была в синтаксической ошибке. Отсутствовала точка с запятой.

Добавить комментарий