Vladislav

Vladislav

С нами с 07 мая 2020; Место в рейтинге пользователей: #3304

Помощь с всплывающим окном -закрытие после отправки данных

Всем привет. Помогите пожалуйста с формой. Есть форма на сайте

Пытаюсь сделать что бы окно закрывалось после отправки формы, либо страница перезагружалась. никак не выходит.

Код 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
  });
	
});
Vladislav
07 мая 2020, 22:22
modx.pro
470
0