document.addEventListener('DOMContentLoaded', function() {
const form = document.querySelector(".js-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('sendemail.php',{
method: 'POST',
body: formData
});
if (response.ok) {
let result = await response.json();
alert(result.message);
/*================ Не работает ================*/
document.querySelectorAll('#btn').forEach(item => {
item.addEventListener('onsubmit', () => {
document.getElementByClassName('training__thanks').style.display = 'flex';
});
});
/*================ Не работает ================*/
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.classList.contains('phone')) {
if (phoneTest(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');
}
// --------------------- Validate -------------------- //
function emailTest(input) {
return !/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(input.value);
}
function phoneTest(input) {
return !/^(\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$/.test(input.value);
}
});
async function formSend(e) {
e.preventDefault();
let error = formValidate(form);
let formData = new FormData(form);
if(error === 0){
let response = await fetch('sendemail.php',{
method: 'POST',
body: formData
});
if (response.ok) {
let result = await response.json();
alert(result.message);
/* ========================================================================== */
document.querySelectorAll('#btn').forEach(item => {
item.addEventListener('onsubmit', () => {
document.getElementsByClassName('training__thanks').style.display = 'flex';
});
});
/* ========================================================================== */
form.reset();
} else {
alert('Ошибка');
}
} else {
alert('Заполните обязательные поля');
}
}
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require "./PHPMailer/src/PHPMailer.php";
require "./PHPMailer/src/Exception.php";
$mail = new PHPMailer(true);
$mail->CharSet = "UTF-8";
$name = $_POST["name"];
$tel = $_POST["tel"];
$email = $_POST["email"];
$theme = '[ЗАЯВКА НА ТРЕНИНГ]';
$body = 'Имя:' . $name . 'Телефон: ' . $tel . 'Email: ' . $email;
// send to
$mail->addAddress("mail@mail.mail");
$mail->Subject = $theme;
$mail->Body = $body;
$mail->send();
?>
use PHPMailer\PHPMailer\Exception;