Форма отправки заявки через php mailer
При первом нажатии на любую кнопку формы на сайте вылазит сразу и окно формы и благодарность за отправку, после закрытия этих окно, и повторного нажатия уже все нормально работает и появляется 1 форма и после отправки уже благодарность.
JS -
window.addEventListener('DOMContentLoaded', () => {
const menu = document.querySelector('.menu'),
menuItem = document.querySelectorAll('.menu_item'),
hamburger = document.querySelector('.hamburger');
hamburger.addEventListener('click', () => {
hamburger.classList.toggle('hamburger_active');
menu.classList.toggle('menu_active');
});
menuItem.forEach(item => {
item.addEventListener('click', () => {
hamburger.classList.toggle('hamburger_active');
menu.classList.toggle('menu_active');
})
})
})
$('[data-modal=consultation]').on('click', function() {
$('.overlay, #consultation').fadeIn('slow');
});
$('.modal__close').on('click', function() {
$('.overlay, #consultation, #thanks').fadeOut('slow');
});
function valideForms(form){
$(form).validate({
rules: {
name: {
required: true,
minlength: 2
},
phone: "required",
email: {
required: false,
email: true
}
},
messages: {
name: {
required: "Пожалуйста, введите свое имя",
minlength: jQuery.validator.format("Введите {0} символов!")
},
phone: "Пожалуйста, введите свой номер телефона",
email: {
required: "Пожалуйста, введите свою почту",
email: "Неправильно введен адрес почты"
}
}
});
};
valideForms('#consultation-form');
valideForms('#consultation form');
$('input[name=phone]').mask("+7(999) 999-99-99");
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "mailer/smart.php",
data: $(this).serialize()
}).done(function() {
$(this).find("input").val("");
$('#consultation').fadeOut();
$('.overlay, #thanks').fadeIn('slow');
$('form').trigger('reset');
});
return false;
});
PHP mailer
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->CharSet = 'utf-8';
// $mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.mail.ru'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // Наш логин
$mail->Password = 'пароль'; // Наш пароль от ящика
$mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->setFrom('[email protected]', 'TaxiRoom'); // От кого письмо
$mail->addAddress('[email protected]'); // Add a recipient
//$mail->addAddress('[email protected]'); // Name is optional
//$mail->addReplyTo('[email protected]', 'Information');
//$mail->addCC('[email protected]');
//$mail->addBCC('[email protected]');
//$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Данные';
$mail->Body = '
Пользователь оставил данные <br>
Имя: ' . $name . ' <br>
Номер телефона: ' . $phone . '<br>
E-mail: ' . $email . '';
if(!$mail->send()) {
return false;
} else {
return true;
}
?>
