Добрый день. При отправке письма из формы обратной связи, происходит любопытная вещь - при отправке первого письма - оно приходит один раз. отправляем второе (с другими данными) и это письмо приходит уже в двух экземплярах. Третье - уже в трех экземплярах, и так далее. В чем тут дело? Подозреваю, что косяк кроется где-то в js - в валидации и аяксе.
Вот html формы:
<form id="main_form" class="connection-form">
<input class="form_elem" type="text" name="username" required placeholder="Ваше имя">
<input id="email_inp" class="form_elem" type="email" name="usermail" required placeholder="Email">
<textarea class="form_elem" name="usermessage" required placeholder="Ваш вопрос" maxlength="1000"></textarea>
<div class="notification">
<i class="fa fa-info-circle" aria-hidden="true"></i>
<span>Все поля обязательны к заполнению</span>
</div>
<input id="submit" type="submit" name="submit" value="Получить консультацию">
</form>
Код отправки:
<?php
if((isset($_POST['username'])&&$_POST['username']!="")&&(isset($_POST['usermail'])&&$_POST['usermail']!="")&&(isset($_POST['usermessage'])&&$_POST['usermessage']!="")){
$to = 'admin@yandex.ru, admin@gmail.com, admin@mail.ru';
$subject = 'Письмо с главного лендинга';
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Имя: '.$_POST['username'].'</p>
<p>Email: '.$_POST['usermail'].'</p>
<p>Сообщение: '.$_POST['usermessage'].'</p>
</body>
</html>';
$headers = "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Отправитель <from@example.com>\r\n";
mail($to, $subject, $message, $headers);
}
Код валидации и отправки:
(function($) {
$("#main_form").each(function() {
var form = $(this),
btn = form.find("#submit");
form.find(".notification").addClass("empty_field");
function isValidEmailAddress(emailAddress) {
// тут просто регулярка для проверки email;
}
function checkInput() {
var email = $("#email_inp").val();
form.find(".form_elem").each(function() {
if($(this).val() !== "" && isValidEmailAddress(email)) {
$($(".notification")).removeClass("empty_field");
} else {
$($(".notification")).addClass("empty_field");
}
});
}
function lightEmpty() {
form.find(".empty_field").css({"color":"#f05442","text-decoration":"underline"});
setTimeout(function() {
form.find(".empty_field").removeAttr("style");
}, 1000);
}
setInterval(function() {
checkInput();
var sizeEmpty = form.find(".empty_field").length;
if (sizeEmpty > 0) {
if (btn.hasClass("disabled")) {
return false;
} else {
btn.addClass("disabled");
}
} else {
btn.removeClass("disabled");
}
}, 500);
btn.click(function() {
if ($(this).hasClass("disabled")) {
lightEmpty();
return false;
} else {
form.submit(function() {
var th = $(this);
$.ajax({
type: "POST",
url: "../mail.php",
data: th.serialize()
}).done(function() {
showPopUp($(".thanx_for_request"));
setTimeout(function() {
th.trigger("reset");
}, 1000);
});
return false;
});
}
});
});
})(jQuery);