Vladislav
С нами с 07 мая 2020; Место в рейтинге пользователей: #3304Помощь с всплывающим окном -закрытие после отправки данных
Всем привет. Помогите пожалуйста с формой. Есть форма на сайте
Пытаюсь сделать что бы окно закрывалось после отправки формы, либо страница перезагружалась. никак не выходит.
Код html
Пытаюсь сделать что бы окно закрывалось после отправки формы, либо страница перезагружалась. никак не выходит.
Код html
<div class="popup">
<!--div class="popup_close"></div-->
<!--div class="popup_title"></div-->
<div class="popup_content">
<div class="popup_text">Заполните простую форму ниже для того чтобы получить актуальную цену<h1></h1></div>
<form action="/_mzbi/popup_tovar.php" method="POST" name="form_popup">
<input type="tel" placeholder="+7(999)999-99-99" name="phone" required>
<input type="email" placeholder="Введите Вашу почту" name="email" required>
<input class="tovar2" name="tovar2" value="<?= $f_title ?>" hidden>
<input type="hidden" name="token" id="token">
<input type="hidden" name="action" id="action">
<input type="submit" class="popup_submit" value="Узнать актуальную цену">
</form>
<script>
let captcha_action = 'add_comment';
grecaptcha.ready(function() {
grecaptcha.execute('API', {action: captcha_action})
.then(function(token) {
if (token) {
document.getElementById('token').value = token;
document.getElementById('action').value = captcha_action;
}
});
});
</script>
<script>
$(document).on('af_complete', function(event, response) {
if (response.success) {
// 1. Просто закрыть
$('.popup').hide();
// 2. Или с анимацией
$('.popup').fadeOut();
}
});
</script>
<div class="popup_text2">Нажимая на кнопку, Вы даёте согласие на обработку персональных данных и соглашаетесь с политикой конфидециальности</div>
</div>
</div>
<div class="bg_popup"></div>
Код php<?php
if (isset($_POST['token']) && isset($_POST['action'])) {
$captcha_token = $_POST['token'];
$captcha_action = $_POST['action'];
} else {
die('Капча работает некорректно. Обратитесь к администратору!');
}
$url = 'https://www.google.com/recaptcha/api/siteverify';
$params = [
'secret' => 'API',
'response' => $captcha_token,
'remoteip' => $_SERVER['REMOTE_ADDR']
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
if(!empty($response)) $decoded_response = json_decode($response);
$success = false;
if ($decoded_response && $decoded_response->success && $decoded_response->action == $captcha_action && $decoded_response->score > 0) {
$success = $decoded_response->success;
$email = $_POST['email'];
$phone = $_POST['phone'];
$tovar2 = $_POST['tovar2'];
mail("ostrovskijj@ya.ru","Запрос цены","На сайте был сделан запрос цены. \nEmail клиента: $email \nТелефон клиента: $phone \nТовар: $tovar2"); // обрабатываем данные формы, которая защищена капчей
} else {
// прописываем действие, если пользователь оказался ботом
}
$result = $success ? 'Капча пройдена успешно!' : 'Неверная капча!';
echo json_encode($success);
Код js$(function() {
$('.open_popup').click(function(){
$('.popup .popup_text h1').text($(this).data('tovar'));
$('.popup').fadeIn();
$('.bg_popup').fadeIn();
$('.bg_popup, .popup_close').click(function(){
$('.popup').fadeOut();
$('.bg_popup').fadeOut();
});
return false
});
});