Обновите запрос перед загрузкой и
Это мой первый запрос, когда установлен $_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?';
});