"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);
?>