nirfrost 21 декабря 2013 0 15
Добрый день! Не особо гибкий 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);



?>


но что то не отправляет письма что не так
можете подсказать?
15 комментариев
Fi1osof1
Fi1osof 22 декабря 2013г в 00:36 #
но что то не отправляет письма что не так
1. Проверьте просто отправку писем через mail() — можете это сделать прям в консоли (вполне вероятно, он у вас уже на сайте установлена). Дело в том, что у вас может просто отправка почты таким образом не работать (не стоит sendmail или типа того).
2. Замените строчку mail($to, $subject, $message, $headers); на
if(!mail($to, $subject, $message, $headers)){
    $modx->log(xPDO::LOG_LEVEL_ERROR, "Не удалось отправить письмо");
}

Это вам позволит убедиться в том, что логической ошибки нет (то есть письмо действительно должно было отправляться), но функция mail() не была успешно выполнена.
n
nirfrost 22 декабря 2013г в 01:28 #
formit то отсылает письма
так что все phpmail работает
Fi1osof1
Fi1osof 22 декабря 2013г в 01:39 #
formit скорее всего работает через phpMailer, который в свою очередь использует sendmail или типа того, а не функцию mail() в чистом виде. Так что смотрите логи php что там у вас не так, и попробуйте внимательно изучить что там использует fromit для отправки писем.

1. Проверьте просто отправку писем через mail() — можете это сделать прям в консоли (вполне вероятно, он у вас уже на сайте установлена). Дело в том, что у вас может просто отправка почты таким образом не работать (не стоит sendmail или типа того).
Это проверили или нет? Отправляются письма через mail() в ручном режиме?
n
nirfrost 22 декабря 2013г в 01:36 #

[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()


вот логи
Fi1osof1
Fi1osof 22 декабря 2013г в 01:40 #
Эти логи ни о чем вообще (это ошибки MODX-парсера, которые к mail() не имеют никакого отношения). Вы смотрите логи самого php.
proxyfabio1
proxyfabio 22 декабря 2013г в 00:40 #
Вот на это у тебя дебаггер браузера часом не ругается?
$.ajaxSetup({cache: false});<s></s>
n
nirfrost 22 декабря 2013г в 01:25 #
нет все чисто
proxyfabio1
proxyfabio 22 декабря 2013г в 01:36 #
Не верю. У тебя чистый js в этом блоке, а там у тебя html-тег появился.
Если браузер не ругается, то ты видимо при создании топика привел код с ошибкой.
n
nirfrost 22 декабря 2013г в 12:29 #
какойо еще html код? это форумский редактор тут сам это вставил
Fi1osof1
Fi1osof 22 декабря 2013г в 13:56 #
Возможно случайно добавился HTML. Убрал из листинга.
В итоге, чистый вызов mail() работает или нет? С проблемой разобрались?
n
nirfrost 22 декабря 2013г в 14:28 #
не работает( а логах php ничего нет по ошыбкам( может что нудно от modx api а php файле подключить?
Fi1osof1
Fi1osof 22 декабря 2013г в 14:39 #
Значит больше ничем просто так не сможем помочь. Может быть что угодно. Могу только предложить платную помощь на вашем сервере (по нашему прайсу — 500 руб/час). Скорее всего за час (максимум два) все это решается.
Если интересно, присылайте доступы к админке в личку.
n
nirfrost 22 декабря 2013г в 14:41 #
хорошо спасибо
Fi1osof1
Fi1osof 22 декабря 2013г в 14:53 #
Пожалуйста.
Fi1osof1
Fi1osof 23 декабря 2013г в 13:35 #
Решено. Проблема была в синтаксической ошибке. Отсутствовала точка с запятой.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.