@ivannex

Не могу разобраться с формой обратной связи PHP+Ajax не чего непроисходит и при нажатие на отправить не чего не происходит, где я допустил ошибку?

<?php get_header(); ?>

<?php
	// Start the loop.
	while ( have_posts() ) : the_post(); ?>

		<div class="content_header">
			<h1><?php the_title(); ?></h1>
			<?php the_content(); ?>
		</div>

		<div class="content_body">
			<div class="row form_contacts">
				<div class="col-sm-6">
					<ul class="ul_contacts">
						<li>
							<h3><i class="icon icon-basic-geolocalize-05"></i> Адрес:</h3>
							<p><?php echo get_post_meta($post->ID, 'address', true); ?></p>
						</li>
						<li>
							<h3><i class="icon icon-basic-smartphone"></i> Телефон:</h3>
							<p><?php echo get_post_meta($post->ID, 'phone', true); ?></p>
						</li>
					</ul>
				</div>
				<div class="col-sm-6">
					<form id="callback" class="callback">
						
						<h3>Оставить заявку</h3>

						<label>
							Ваше имя
							<input type="text" name="name" required>
						</label>

						<label>
							Ваше E-mail
							<input type="text" name="email" required>
						</label>

						<label>
							Комментарий к заказу
							<textarea name="message"></textarea>
						</label>
						
						<button class="button" type="submit">Отправить заявку</button>
            
					</form>
				</div>
			</div>

		</div>

	<?php endwhile; ?>

<?php get_footer(); ?>

//Аякс отправка форм
	//Документация: http://api.jquery.com/jquery.ajax/
	$("#callback").submit(function() {
		$.ajax({
			type: "POST",
			url: "mail.php",
			data: $(this).serialize()
		}).done(function() {
			alert("Спасибо за заявку!");
			setTimeout(function() {
				
			}, 1000);
		});
		return false;
	});

<?php

$frm_name  = "Тут все заполнено";
$recepient = "name@mysite.com тут тоже";
$sitename  = "Портфолио фотографий ";
$subject   = "Новая заявка с сайта \"$sitename\"";

$name = trim($_POST["name"]);
$email = trim($_POST["email"]);
$message = trim($_POST["message"]);
$message = "E-mail: $email \nИмя: $name \nСообщение: $message";
mail($recepient, $subject, $message, "From: $frm_name <$recepient>" . "\r\n" . "Reply-To: $recepient" . "\r\n" . "X-Mailer: PHP/" . phpversion() . "\r\n" . "Content-type: text/html; charset=\"utf-8\"");

.form_contacts form {
	background-color: #181818;
	color: #fff;
	padding: 30px;
}
.callback h3 {
	margin-top: 0;
	text-align: center;
	margin-bottom: 25px;
	font-size: 22px;
	font-weight: normal;
}
.form_contacts label {
	color: #5b5b5b;
	font-size: 13px;
	letter-spacing: 3px;
	width: 100%;
	margin-bottom: 15px;
}
.form_contacts input {
	display: block;
	width: 100%;
}
.form_contacts input,
.form_contacts textarea {
	background-color: #2e2e2e;
	border: 1px solid #484848;
	color: #fff;
	display: block;
	margin-top: 5px;
	padding: 10px;
	width: 100%;
	max-width: 100%;
	font-size: 15px;
}
.button {
	background-color: tomato;
	border: medium none;
	display: block;
	line-height: 42px;
	margin: 15px auto 10px;
	padding: 0 20px;
}
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ivannex Автор вопроса
сайт на cms wordpress, почта на biz.mail.ru, хоcтинг hostinger.ru как то так )
Ответ написан
Комментировать
Aligatro
@Aligatro
Turn food and coffee into software...
Тяжело судить без отладчика, куда проще консоль открыть и посмотреть что происходит.

Из того что бросается в глаза сразу:
<label>
      Ваше имя
     <input type="text" name="name" required>
</label>

name="name" - так именовать импут не стоит. Помню на этой почве ловил баг.

$.ajax({
  type: "POST",
  url: "mail.php",
  data: $(this).serialize()
})

В wp работа с ajax запросами происходит немного иначе. В целом, почитайте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы