style: add some style 5 (modal form 3)

This commit is contained in:
2026-06-05 12:17:18 +03:00
parent 9e006c2572
commit 24824e2dc3
2 changed files with 63 additions and 48 deletions

View File

@@ -825,22 +825,34 @@
const form = document.getElementById('popup-booking-form'); const form = document.getElementById('popup-booking-form');
if (popup && form) { if (popup && form) {
// Открытие окна const openModal = () => {
popup.classList.add('modal--active');
popup.setAttribute('aria-hidden', 'false'); // ← исправление
// Перевод фокуса на первое поле
setTimeout(() => {
form.querySelector('input').focus();
}, 300);
};
const closeModal = () => {
popup.classList.remove('modal--active');
popup.setAttribute('aria-hidden', 'true');
};
// Открытие
document.querySelectorAll('a[href="#booking"], .btn[href="#booking"]').forEach(btn => { document.querySelectorAll('a[href="#booking"], .btn[href="#booking"]').forEach(btn => {
btn.addEventListener('click', function(e) { btn.addEventListener('click', function(e) {
e.preventDefault(); e.preventDefault();
popup.classList.add('modal--active'); openModal();
}); });
}); });
// Закрытие // Закрытие
document.querySelectorAll('[data-modal-close]').forEach(el => { document.querySelectorAll('[data-modal-close]').forEach(el => {
el.addEventListener('click', () => { el.addEventListener('click', closeModal);
popup.classList.remove('modal--active');
});
}); });
// Отправка формы // Отправка формы (оставь как было, только добавь closeModal() при успехе)
form.addEventListener('submit', async function(e) { form.addEventListener('submit', async function(e) {
e.preventDefault(); e.preventDefault();
@@ -850,12 +862,10 @@
submitBtn.textContent = 'Отправляем...'; submitBtn.textContent = 'Отправляем...';
submitBtn.disabled = true; submitBtn.disabled = true;
const formData = new FormData(form);
try { try {
const response = await fetch('send-form.php', { const response = await fetch('send-form.php', {
method: 'POST', method: 'POST',
body: formData body: new FormData(form)
}); });
const result = await response.json(); const result = await response.json();
@@ -863,19 +873,20 @@
if (result.status === "success") { if (result.status === "success") {
alert("✅ Заявка успешно отправлена!\nМы свяжемся с вами в ближайшее время."); alert("✅ Заявка успешно отправлена!\nМы свяжемся с вами в ближайшее время.");
form.reset(); form.reset();
popup.classList.remove('modal--active'); closeModal(); // ← используем функцию
} else { } else {
alert("❌ " + (result.message || "Ошибка при отправке. Попробуйте позже.")); alert("❌ " + (result.message || "Ошибка при отправке."));
} }
} catch (error) { } catch (error) {
console.error(error); console.error(error);
alert("❌ Ошибка соединения. Проверьте интернет и попробуйте снова."); alert("❌ Ошибка соединения.");
} }
submitBtn.textContent = originalText; submitBtn.textContent = originalText;
submitBtn.disabled = false; submitBtn.disabled = false;
}); });
} }
</script> </script>

View File

@@ -15,7 +15,7 @@ if (empty($name) || empty($phone)) {
exit; exit;
} }
//$to = "receptionadmin@o-arena.ru"; // ← Измени на свой реальный email! //$to = "receptionadmin@o-arena.ru"; // ← Обязательно поменяй на свой реальный email!
$to = "rid89@mail.ru"; $to = "rid89@mail.ru";
$subject = "Новая заявка с сайта OlimpArena"; $subject = "Новая заявка с сайта OlimpArena";
@@ -29,11 +29,15 @@ $message .= "Дата: " . date('d.m.Y H:i:s') . "\n";
$headers = "From: no-reply@olimparena.aiconversion.ru\r\n"; $headers = "From: no-reply@olimparena.aiconversion.ru\r\n";
$headers .= "Reply-To: $email\r\n"; $headers .= "Reply-To: $email\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n"; $headers .= "Content-Type: text/plain; charset=utf-8\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
if (mail($to, $subject, $message, $headers)) { if (mail($to, $subject, $message, $headers)) {
echo json_encode(["status" => "success"]); echo json_encode(["status" => "success"]);
} else { } else {
error_log("Mail error: " . print_r(error_get_last(), true)); error_log("MAIL ERROR: " . print_r(error_get_last(), true));
echo json_encode(["status" => "error", "message" => "Не удалось отправить письмо"]); echo json_encode([
"status" => "error",
"message" => "Не удалось отправить письмо. Администратор уже уведомлён."
]);
} }
?> ?>