Показать сообщение отдельно
  #1 (permalink)  
Старый 26.12.2013, 00:51
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Отправка одного поля без перезагрузки страницы
Доброй ночи.
Пытаюсь сделать отправку одного поля без перезагрузки страницы. Сталкиваюсь с проблемой - отдельно работает, а прикручиваю на сайт - перестает. Может быть конфликт с joomla?

Вот код:
<form id="form" method="post" action="javascript:void(0);" onsubmit="ajax()">
	<p>Ваш номер телефона</p>
	<p><input type="text" name="email" class="email" value="" /></p>
	<p><input type="submit" name="send" class="send" value="send"></p>
</form>
<div id="results"></div>


function ajax() { //Ajax отправка формы
	var msg = $("#form").serialize();
	$.ajax({
		type: "POST",
		url: "/form/send.php",
		data: msg,
		success: function(data) {
			$("#results").html(data);
		},
		error:  function(xhr, str){
			alert("Возникла ошибка!");
		}
	});
}

jQuery.fn.notExists = function() { //Проверка на существование элемента
	return $(this).length==0;
}

$(document).ready(function(){ //Валидация формы
	$(".send").validation(
		$(".email").validate({
			test: "blank digits",
			invalid: function(){
				if($(this).nextAll(".error").notExists()) {
					$(this).after('<div class="error">Введите корректный номер телефона</div>');
					$(this).nextAll(".error").delay(2000).fadeOut("slow");
					setTimeout(function () {
						$(".email").next(".error").remove();
					}, 2600);
				}
			},
			valid: function(){
				$(this).nextAll(".error").remove();
			}
		})
		
	);
});


if (!isset($_POST['email']) or empty($_POST['email'])) {
	$error2 = "Email?<br />";
} else $error2 = NULL;

if (empty($error1) and empty($error2) and empty($error3) and empty($error4)) {
	$subject = $_POST['subject'];
	$name    = $_POST['name'];
	$email   = $_POST['email'];
	$message = "Телефон: {$email}";
	if (mail("test@test.ru", $subject, $message)) {
		echo "Отправлено!";
	} else echo "Ошибка!";
} else {
	echo $error1.$error2.$error3.$error4;
}
Ответить с цитированием