У меня есть программа онлайн-викторины, где пользователь должен заполнить ее в течение определенного периода времени. Когда у пользователя заканчивается время, я показываю предупреждение о том, что ваше время истекло, и он перенаправляется на страницу результатов. Я получаю такое же предупреждение, когда пользователь завершает тест до истечения времени и находится на странице результатов. Я изменил код следующим образом, но он не работает. Я вызываю функцию initTimer (1,1) на странице, запрашиваемой ajax, с именем questions.php.
В index.php
function initTimer(periodInSeconds, status) {
if (status == 0) {
return false;
}
var end = Date.now() + periodInSeconds * 1000 * 60;
var x = window.setInterval(function() {
var timeLeft = Math.floor((end - Date.now()) / 1000);
if (timeLeft < 0) {
clearInterval(x);
alert("Time's Up!");
timeExpired = true;
var completed = 1;
$.ajax({
type: "POST",
url: "success.php",
data: {
'userID': <?php echo $_SESSION['userID'];?>
},
success: function(hasil) {
$('.response_div').html(hasil);
}
});
}
$(document).find('#timerspan').html('00:' + (timeLeft < 10 ? '0' + timeLeft : timeLeft));
}, 200);
}
//when user submits the form before time expires
$(document).on('submit', '.form_choice', function() {
initTimer(1, 0)
$.ajax({
type: "POST",
url: "result.php",
data: data,
success: function(hasil) {
$('.response_div').html(hasil);
}
})
});
Я не хочу, чтобы функция init () выполнялась, когда пользователь отправляет форму до истечения времени. Пожалуйста, помогите мне