@veroni1337

Почему ajax отправка формы перезагружает страницу?

Здравствуйте. Пытаюсь сделать отправку формы на почту с помощью 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;
}
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы