Задать вопрос
@Andr_ey56

Почему не отправляется форма?

"use strict"

document.addEventListener('DOMContentLoaded', function () {
    const form = document.getElementById('form');
    form.addEventListener('submit', formSend);

    async function formSend(e) {
        e.preventDefault();

        let error = formValidate(form);

        let formData = new FormData(form);
        

        if (error === 0) {
            let response = await fetch('mail.php', {
                method: 'POST',
                body: formData
            });
            if (response.ok) {
                let result = await response.json();
                alert(result.message);
                formPreview.innerHTML = '';
                form.reset();
              
            } else {
                alert("Ошибка")
          

            }

        }else{
            alert ('Заполните обязательные поля')
        }
    }


    function formValidate(form) {
        let error = 0;
        let formReq = document.querySelectorAll('._req');

        for (let index = 0; index < formReq.length; index++) {
            const input = formReq[index];
            formRemoveError(input);

            if (input.classList.contains('_email')) {
                if (emailTest(input)){
                    formAddError(input);
                    error++;
                }

            } else if (input.getAttribute("type")==="checkbox" && input.checked === false) {
                formAddError(input);
                error++;
            }else{
                if (input.value === '') {
                    formAddError(input);
                    error++;
                }
            }
        }
        return error;
    }
    function formAddError(input) {
        input.parentElement.classList.add('_error');
        input.classList.add('_error');
    }
    function formRemoveError(input) {
        input.parentElement.classList.remove('_error');
        input.classList.remove('_error');
    }

/* функция проверки емайл */
    function emailTest(input) {
        return !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,8})+$/.test(input.value);
    }
});

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
 
require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';

$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8';
$mail->setLanguage('ru', 'phpmailer/language/');
$mail->IsHTML(true);



$mail->setFrom('HPL');

$mail->addAddress('Andrey56.89@mail.ru');

$mail->Subject = 'У вас письмо!'


$body = '<h1>Заявка!</h1>';

if(trim(!empty($_POST['name']))){
    $body.='<p><strong>Имя:</strong> '.$_POST['name']. '</p>';
}
if(trim(!empty($_POST['phone']))){
    $body.='<p><strong>Телефон:</strong>' .$_POST['phone']. '</p>';
}
if(trim(!empty($_POST['email']))){
    $body.='<p><strong>email:</strong>' .$_POST['email']. '</p>';
}

$mail->Body = $body;

if (!$mail->send()) {
    $message = 'Ошибка' ;
} else {
    $message = 'Данные отправлены!';
}

$response = ['message' => $message];

header('Content-type: application/json');
echo json_encode($response);
?>


ccылка
Ссылка удалена модератором.
  • Вопрос задан
  • 192 просмотра
Подписаться Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) Что пишет конслоль?
2) Запрос вообще выполняется? В нетворке виден запрос по субмиту на mail.php?
3) Что показывает нетворк в пэйлоаде запроса?
4) Что возвращает сервер на запрос?
Ответ написан
Ваш ответ на вопрос

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

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