style: add some style 5 (modal form 3)
This commit is contained in:
35
index.html
35
index.html
@@ -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>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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" => "Не удалось отправить письмо. Администратор уже уведомлён."
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
Reference in New Issue
Block a user