javascript - PHP计时器在刷新页面时停止重新启动

标签 javascript php

我的测验 Web 应用程序有一个计时器,但每次用户转到下一个问题或刷新页面时,计时器都会重置。

我尝试将剩余时间保存到变量中,但是我不知道。我是初学者,一些会有所帮助。

<span id="countdown" class="timer"></span>
<script>
var seconds = 15;
    function secondPassed() {
    var minutes = Math.round((seconds - 30)/60);
    var remainingSeconds = seconds % 60;
    if (remainingSeconds < 10) {
        remainingSeconds = "0" + remainingSeconds; 
    }
    document.getElementById('countdown').innerHTML = minutes + ":" +    remainingSeconds;
    if (seconds == 0) {
        clearInterval(countdownTimer);
        header("location:account.php?q=result&eid=5cb44b236f3b1");
    } else {    
        seconds--;
    }
    }
var countdownTimer = setInterval('secondPassed()', 1000);
</script>

我希望每个页面或每次用户刷新页面时都使用相同的计时器。感谢您的宝贵时间!

最佳答案

一种解决方案是使用 session 变量。您要做的就是存储测验开始的时间,并根据该时间倒计时。请注意,您只需要在第一页上设置 startTime 变量。

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php

if($_SESSION["startTime"] == null)
{
  $_SESSION["startTime"] = time();
}

?>
<script type="text/javascript">
// Timer script
// Get start time of quiz, current time and calculate time remaining
var startTime = "<?php echo $_SESSION["startTime"] ?>"; 

//...Rest of timer script.

</script>
</body>
</html>

关于javascript - PHP计时器在刷新页面时停止重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55688842/

相关文章:

php - 如何检查MySQL中是否存在一行? (即检查 MySQL 中是否存在用户名或电子邮件)

php - 定义自定义颜色

php - Elasticsearch不返回部分结果

javascript - 如何选择表格元素并运行 JavaScript

javascript - 使用 Javascript 和 Underscore.js,如何比较 2 个数组并在匹配时替换属性?

javascript - 将 async.waterfall 转换为 Bacon

magento - 如何删除 Magento 社区中的多个送货地址?

php - MySQL加入: unknown column in field list

javascript - 动态创建 Skrollr 元素,滚动失败

javascript - 当我们有 POST 表单数据时如何使用 javascript/jquery 禁用浏览器后退按钮