Как сделать таймер обратного отсчета и обновить запись MySQL, когда время истекло?

Мне нужна помощь о том, как обновить таблицу MySQL, когда время истекло? Я получил этот код:

<script language="JavaScript">
var timeleft;
var nextdue;
var tick = 1000;
function parseTime(t) {
var tt = ("0:00:" + t);
tt = tt.split(":").reverse();
return (tt[0] * 1000) + (tt[1] * 60000) + (tt[2] * 3600000);
}
function zeroPad(n) {
if (n < 10) return "0" + n;
return "" + n;
}function makeTime(t) {
if (t < 0) return "0:00:00";
var tt = t + 999;
return Math.floor(tt / 3600000) + ":" +
zeroPad(Math.floor(tt / 60000) % 60) + ":" +
zeroPad(Math.floor(tt / 1000) % 60);
}

function startTimer() {
nextdue = new Date().getTime();
timeleft = parseTime(document.timerform.timerbox.value);
runTimer();
}

function runTimer() {
document.timerform.timerbox.value = makeTime(timeleft);
if (timeleft <= 0) alert("Time's up!");
else {
var timecorr = (new Date().getTime()) - nextdue;
if (timecorr > 0 && timecorr < 3000) {
timeleft -= (tick + timecorr);
nextdue += tick;
if (timeleft < 1) setTimeout("runTimer()", tick + timeleft);
else setTimeout("runTimer()", Math.max(1, tick - timecorr));
}
else {
nextdue = (new Date().getTime()) + tick;
timeleft -= tick;
if (timeleft < 1) setTimeout("runTimer()", tick + timeleft);
else setTimeout("runTimer()", tick);
}
}
}
</script>

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

  • когда он достигает 0 секунд, я хочу обновить таблицу MySQL и затем вернуться на ту же страницу.

Это возможно? Спасибо. Это мой первый раз здесь.

1

Решение

Я предлагаю вам использовать библиотеку, такую ​​как jQuery, или фреймворк, такой как Backbone.js, чтобы немного упростить вашу работу с задачами javascript.

Чтобы сделать то, что вы хотите (если я правильно понимаю вопрос), вам нужно что-то вроде следующего. В следующем примере я предполагаю, что у вас есть jquery на вашей веб-странице.

/*
* Your time-tracking code here
*/

// If the time left is 0 seconds/milliseconds/whatever
if(time_left === 0) {
// then do an AJAX request to the server page that handles updating the mysql table
$.ajax({
type: operation, // (GET, POSt, etc)
url: url, // The location of your php file relative to your root URL
data: {}, // the data you want the server (php file) to receive
success: function(data){
// Whatever you want to happen when the server succeeds with the operation
}
});
}

В вашем php-файле у вас будет просто функция, которая обновляет вашу таблицу по вашему желанию.

0

Другие решения

Привет всем, я нашел это спасибо, это ответ на мой вопрос
когда время достигает 0, эта страница возвращается на ту же страницу и повторяется до тех пор, пока не закончится время. Coool. еще раз спасибо

if (timeleft<=0)window.location.href="./mod.php";
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector