У меня возникла проблема, скрипт дважды отправляет сообщение на почту причём первое с данными которые я ввёл, а второе пустое.
[
html-form.php ]:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Ajax-форма</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
<form class="form" id="form" name="form">
<input type="text" class="form-field" name="name" placeholder="Введите ваше имя">
<input type="text" class="form-field" name="phone" placeholder="Введите ваш телефон">
<button class="form-button"><span class="text-button">Отправить заявку</span></button>
</form>
<footer>
<div class="overlay js-overlay-thank-you">
<div class="popup js-thank-you">
<h2>Спасибо за заявку</h2>
<div class="close-popup js-close-thank-you"></div>
</div>
</div>
</footer>
<div id="otv">
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="main.js"></script>
<script src="jquery.maskedinput.js"></script>
</body>
</html>
[ main.js ]:
// Отправка заявки
$(document).ready(function() {
$('#form').submit(function() { // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari)
if (document.form.name.value == '' || document.form.phone.value == '' ) {
valid = false;
return valid;
}
$.ajax({
type: "POST",
url: "mail.php",
data: $(this).serialize()
}).done(function() {
$('.js-overlay-thank-you').fadeIn();
$(this).find('input').val('');
$('#form').trigger('reset');
$('#otv').load('mail.php');
});
return false;
});
});
// Закрыть попап «спасибо»
$('.js-close-thank-you').click(function() { // по клику на крестик
$('.js-overlay-thank-you').fadeOut();
});
$(document).mouseup(function (e) { // по клику вне попапа
var popup = $('.popup');
if (e.target!=popup[0]&&popup.has(e.target).length === 0){
$('.js-overlay-thank-you').fadeOut();
}
});
[ mail.php ]:
<?php
if($_POST['name']='' || $_POST['phone']=''){
}else{
$recepient = "test@gmail.com";
$siteName = "Тест";
$from = "test";
$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$message = "Имя: $name \nТелефон: $phone";
$pagetitle = "Заявка с сайта \"$siteName\"";
mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $from");
echo 'Сообщение отправлено на '.$recepient;
}
?>