На сайте
johny-gyro.ru форма отправляется аяксом, то есть без перезагрузки страницы.
Но есть отдельное место где это не работает - окно продукта на всех трех продуктах, после отправки сайт сразу перекидывает на файл php отправителя, который указан в action. (само окно продукта сделано на jquery product quick view)
Вот форма:
<form method="POST" class="mail-to" action="mail.php">
<input type="text" name="phone" required placeholder="Телефон">
<input class="my-btn yellow-my-btn" type="submit" value="Отправить">
</form>
Скрипт обработчик:
$("form").submit(function(e) { //устанавливаем событие отправки для формы с id=form
e.preventDefault();
var form = $(this);
var form_data = $(this).serialize(); //собераем все данные из формы
$.ajax({
type: "POST", //Метод отправки
url: form.attr('action'), //путь до php фаила отправителя
data: form_data,
success: function() {
// yaCounter43092004.reachGoal(goal);
//код в этом блоке выполняется при успешной отправке сообщения
$('#thankyouModal').modal('show');
form[0].reset();
}});
});
И mail php:
<?php
// несколько получателей
$to = 'mail@yandex.ru'; // обратите внимание на запятую
// тема письма
$subject = 'Заявка на сайте johny-gyro (' . date("Y-m-d H:i:s") . ')';
// текст письма меняется он!!
$message = '' . $_POST['phone'];
// Для отправки HTML-письма должен быть установлен заголовок Content-type
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\r\n";
// Дополнительные заголовки
$headers .= 'To: info <info@mail.ru>' . "\r\n"; // Свое имя и email
$headers .= 'From: no-replay@mail.ru ' . "\r\n";
// Отправляем
mail($to, $subject, $message, $headers);
?>
Живой пример можно посмотреть на самом сайте.
Подскажите, пожалуйста, кто работал с таким, может ошибся где.