Здравствуйте. Пытаюсь сделать отправку формы на почту с помощью ajax, но страница перезагружается если я ловлю событие submit, если вместо submit использую click все нормально.
Вот моя форма:
<form class="feedback_form">
<input type="text" placeholder="Имя" name="name" id="name">
<input type="tel" placeholder="Телефон" name="phone" id="phone">
<input type="email" placeholder="Почта" name="email" id="email">
<input type="submit" class="feedback_form_submit" value="Принять участие">
</form>
ajax:
jQuery( function( $ ){
$(document).ready(function(){
$('.feedback_form_submit').submit(function(e){
e.preventDefault();
var user_email = $('#email').val();
var user_name = $('#name').val();
var user_phone = $('#phone').val();
$.ajax({
url: "/mail/mail.php",
type: "POST",
data: {
"email": user_email,
"name": user_name,
"phone": user_phone,
},
error:function(){$("#erconts").html("Произошла ошибка!");},
beforeSend: function() {
$('.feedback_loading').toggleClass('active');
},
success: function(){
$('.feedback_success').toggleClass('active');
$('.feedback').removeClass('active');
}
});
});
});
});
php:
<?php
// Подключаем библиотеку PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require_once './PHPMailer/src/PHPMailer.php';
require_once './PHPMailer/src/SMTP.php';
require_once './PHPMailer/src/Exception.php';
// Создаем письмо
$mail = new PHPMailer();
$mail->isSMTP(); // Отправка через SMTP
$mail->Host = 'smtp.gmail.com'; // Адрес SMTP сервера
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'заглушка'; // ваше имя пользователя (без домена и @)
$mail->Password = 'заглушка'; // ваш пароль
$mail->SMTPSecure = 'ssl'; // шифрование ssl
$mail->Port = 465; // порт подключения
$mail->setFrom('заглушка', 'заглушка'); // от кого
$mail->addAddress('заглушка', 'заглушка'); // кому
$mail->Subject = 'Тест';
$mail->msgHTML("<html><body>
<h1>Заявка с сайта</h1>
<div>Имя: {$_POST['name']}</div>
<div>Телефон: {$_POST['phone']}</div>
<div>Почта: {$_POST['email']}</div>
</html></body>");
// Отправляем
if ($mail->send()) {
echo 'Письмо отправлено!';
} else {
echo 'Ошибка: ' . $mail->ErrorInfo;
}