如何制作倒数计时器并在时间到时更新MySQL记录?

时间:2015-03-02 14:54:45

标签: javascript php mysql timer countdown

我需要有关如何在时间到了时更新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表,然后回到同一页面。

这可能吗?谢谢。这是我第一次来这里。

2 个答案:

答案 0 :(得分:0)

我建议你使用像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文件中,您只需拥有一个可根据需要更新表格的功能。

答案 1 :(得分:0)

大家好,我发现它谢谢你,这就是我的问题的答案 当时间到达0到达此页面然后它返回到同一页面并重复直到不再有时间。 COOOL。再次感谢

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