На главной странице у меня есть таймер, который я могу установить изначально. Когда время истекает, всплывающее окно появляется с викториной, которая должна быть завершена. У меня есть переменная $ correctQuestions, в которой хранится количество правильных ответов из этого теста.
Мне нужна функция PHP для кнопки, которая закрывает всплывающее окно и добавляет перезапуск таймера, добавляя 30 секунд к начальному времени, если на все вопросы ответили правильно, и удаляя 30 в противном случае. Как это можно сделать?
Редактировать:
В PHP-файле таймера у меня есть кнопки для вызова функций для увеличения / уменьшения времени из скрипта таймера в js и кнопка для запуска таймера:
<button id="Start-Stop" onclick="clickButton();">START</button>
Когда время выключено, появляется всплывающее окно с набором вопросов из базы данных.
Вот скрипт с функцией, которую вызывает кнопка:
function clickButton()
{
// Code which is not so relevant for my question
document.getElementById("errorLabel").innerHTML = "";
displayTime();
document.getElementById("Start-Stop").innerHTML = "Stop";
start = true;
chosenTime = time;
timer = setInterval(tick, 1000);
// Show the time left
document.getElementById("initialTimeLabel").innerHTML = "Time until exercise:";
} // clickButton
function tick()
{
if(time == 0)
{
clearInterval(timer);
openWindow();
}
else
{
time = time - 1;
}
displayTime();
}
function openWindow()
{
// Choose the selected module and popup an excercise page
var module = document.getElementById("moduleDropdown");
module = module.options[module.selectedIndex].text;
var mylink = "ExercisePage.php?module=" + module;
var windowname = "Questions";
start = false;
time = chosenTime;
displayTime();
document.getElementById("moduleDropdown").disabled = false;
document.getElementById("initialTimeLabel").innerHTML = "Set an initial time:";
document.getElementById("Start-Stop").innerHTML = "Start";
var myWindow = window.open(mylink, windowname, "type=fullwindow,fullscreen=yes,height=screen.availHeight,width=screen.availWidth,left=0,top=0,resizeable=no,scrollbars=yes");
myWindow.focus();
}
И когда я нажимаю кнопку, чтобы закрыть всплывающее окно, я хочу, чтобы мой таймер перезапустился с +30 секундами, если на все вопросы ответили правильно (у меня есть переменная $ correctQuestions для их подсчета) и +30 секунд в противном случае.
После того, как вы запустили всплывающее окно, как
var myWindow = window.open("https://www.google.com", "Google", "width=800, height=600");
Но тогда, если вы хотите проверить, закрылось ли всплывающее окно или нет
var interval = window.setInterval(function () {
if (myWindow.closed) {
// Do some stuf here as this will run when the popup has been closed
alert("Child window closed");
window.clearInterval(interval);
}
}, 500);
И если вы хотите, чтобы закрыть всплывающее окно по некоторому нажатию кнопки, или через некоторое время
$myBtn.click(function () {
myWindow.close();
// other code here to reset your timers etc
});
Других решений пока нет …