【问题标题】:countdown timer should continue for two php pages倒数计时器应该继续两个 php 页面
【发布时间】:2015-04-07 11:59:35
【问题描述】:

这是倒计时的代码

<script language="JavaScript">
<!--
var hoursleft = 0;
var minutesleft = 10;           // you can change these values to any value greater than 0
var secondsleft = 0;
var millisecondsleft = 0;
var finishedtext = "Countdown finished!" // text that appears when the countdown reaches 0
end = new Date();

end.setMinutes(end.getMinutes()+minutesleft);
end.setSeconds(end.getSeconds()+secondsleft);
end.setMilliseconds(end.getMilliseconds()+millisecondsleft);
function cd(){
    now = new Date();
    diff = end - now;
    diff = new Date(diff);
    var msec = diff.getMilliseconds();
    var sec = diff.getSeconds();
    var min = diff.getMinutes();

    if (min < 10){
        min = "0" + min;
    }
    if (sec < 10){
        sec = "0" + sec;
    }
    if(msec < 10){
        msec = "00" +msec;
    }
    else if(msec < 100){
        msec = "0" +msec;
    }
    if(now >= end){
        clearTimeout(timerID);
        document.getElementById("cdtime").innerHTML = finishedtext;
    }
    else{
    document.getElementById("cdtime").innerHTML = min + ":" + sec + ":" + msec;
    }       // you can leave out the + ":" + msec if you want...
            // If you do so, you should also change setTimeout to setTimeout("cd()",1000)
    timerID = setTimeout("cd()", 10); 
}
window.onload = cd;
//-->
</script>

我希望此计时器在两个 php 页面上继续运行,而无需再次重新启动。当每个问题显示时,计时器不应再次重新启动。 test1.php 页面有所有选择题要回答,test2.php 页面有所有填空题要回答。在我的应用程序中,首先 test1.php(即 MCQ)将运行,并且在所有 MCQ 之后 test2.php 将运行。如何为两个页面使用相同的计时器。

【问题讨论】:

  • 看看 JavaScripts localStorage 或 PHP 会话
  • 尝试将计时器的html代码粘贴到两个php文件中,并将此脚本放入一个带有name.js的文件中,然后将其包含在两个文件中。
  • @anant 我照你说的做了,但计时器仍然重新开始

标签: javascript php html web-applications countdowntimer


【解决方案1】:

我现在在 PHP 中遇到了类似的问题并制定了解决方案。我不确定以下是否有帮助,但请尝试这是否适合您。

将开始时间保存为会话变量 在每个问题显示之前,执行 if 函数以将差异更新为 "end" 和 "Session["time"]" 之间的差异。

if(Session["time"]) {
    if(Session["time"]) < end {
        diff = end - Session["time"];
    } else {
         //perform answer submission (may be).
         }
} else {
    var d = new Date();
    Session["time"] = d.getTime();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多