Обновите запрос перед загрузкой и

Это мой первый запрос, когда установлен $_POST

<?php
    if (isset($_POST['bags']))
{
    $bagS=$_POST['bags'];
        $id=$_POST["id"];
        $_SESSION['id']=$id;
        $cats = explode(" ", $bagS);
        $cats = preg_split('/,/', $bagS, -1, PREG_SPLIT_NO_EMPTY);
        foreach($cats as $key => $cat )
        {
        $cat  = mysqli_real_escape_string($con,$cats[$key]);
        $cat = trim($cat);
 if($cat !=NULL)
             {
                 $stmt = $con->prepare('UPDATE wallet SET `Status`="Hold" where `Id`=? AND `bags`="'.$cat.'" ');
                 $stmt->bind_param("s", $_POST["id"]);
                 $stmt->execute();

  }
  }
}

после этого устанавливается тайм-аут скрипта для обновления следующего запроса, если ничего не происходит со стороны пользователя

<script type="text/javascript">
          setTimeout(function() { window.location.href = "index.php?on_timeout=1"; }, 60 * 500);
</script>

затем скрипт возвращает строку запроса по истечении времени ожидания и выполняет запрос на обновление и перенаправляет на другую страницу

if(isset($_GET['on_timeout'])) {

   echo  $bagS=$_SESSION['bags'];
   echo $id=$_SESSION['id'];
        $cats = explode(" ", $bagS);
        $cats = preg_split('/,/', $bagS, -1, PREG_SPLIT_NO_EMPTY);
        foreach($cats as $key => $cat )
        {
        $cat  = mysql_real_escape_string($cats[$key]);
        $cat = trim($cat);
 if($cat !=NULL)
             {
                  $stmt = $con->prepare('UPDATE wallet SET `Status`=" " where `Id`=? AND `bags`="'.$cat.'" AND `Status`="Hold" ');
                 $stmt->bind_param("s", $_SESSION['id']);
                 $stmt->execute();
                 echo "<script type='text/javascript'>location.href = 'cards.php';</script>";

  }
  }
}

 ?>

Теперь я хочу выполнить тот же запрос, когда пользователь закрывает браузер или закрывает браузер с помощью "window.onbeforeunload" . Поэтому, пожалуйста, скажите мне, как установить код обновления в этом событии

<script>
var areYouReallySure = false;
    function areYouSure() {
    if(allowPrompt){
        if (!areYouReallySure && true) {
            areYouReallySure = true;
            var confMessage = "are you sure to do this";
            return confMessage;
        }
    }else{
        allowPrompt = true;
    }
}

var allowPrompt = true;
window.onbeforeunload = areYouSure;

</script>

1 ответ

Решение

Вы можете позвонить вам код, прежде чем покинуть страницу

function myfoo(){
         // Write your logic here
           $.ajax({
            url: "Pageurl_that_having_your_update_code",
            dataType: 'json',
            data: {
                on_timeout: 1
            },
            success: function (r) {}
});
    }

onbeforeunload:

 window.onbeforeunload = function(){
  myfoo();
  return 'Are you sure you want to leave?';
};

Или Jquery

$(window).bind('beforeunload', function(){
  myfoo();
  return 'Are you sure you want to leave?';
});
Другие вопросы по тегам