javascript - 刷新数据并在时间间隔后重置倒计时器

标签 javascript php mysql ajax database

Index.php

这是我的主文件,其中正在进行倒计时。这是一个简单的倒计时脚本。下一个文件“Select.php”包含倒计时完成后需要运行的代码,并且我还需要倒计时刷新到当前时间+1小时。最好的事情是如果这可以通过 ajax 完成,但如果不能,那么页面每小时刷新一次就可以了。

当我尝试相互实现这些代码时遇到的一个问题是,每次刷新页面时,都会从数据库中选择一个新行。我需要的是,只有当倒计时完成时,才会从数据库中选择一个新行。

我尝试过使用 cron 作业,但未能使其正常工作。 :(

  <script>
  var CountDownTimer;

CountDownTimer = function(dt, id) {
  var _day, _hour, _minute, _second, end, selector, showRemaining, timer;
  selector = document.getElementById(id);
  end = new Date(dt);
  _second = 1000;
  _minute = _second * 60;
  _hour = _minute * 60;
  _day = _hour * 24;
  showRemaining = function() {
    var days, distance, hours, minutes, now, seconds;
    now = new Date();
    distance = end - now;
    if (distance <= 0) {
        CountDownTimer("<?php echo $expire_date; ?> <?php echo $expire_time; ?>:00", "countdown");
        return;
    }
    days = Math.floor(distance / _day);
    hours = Math.floor((distance % _day) / _hour);
    minutes = Math.floor((distance % _hour) / _minute);
    seconds = Math.floor((distance % _minute) / _second);
    return selector.innerHTML =  minutes + " mins " + seconds + " secs";
  };
  return timer = setInterval(showRemaining, 1000);
};

CountDownTimer("<?php echo $expire_date; ?> <?php echo $expire_time; ?>:00", "countdown");

  </script>

Select.php

这是主文件中倒计时完成后需要运行的代码。

<?php
$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM users ORDER BY RAND() LIMIT 1"; 
$result1 = $conn->query($sql);


if ($result1->num_rows > 0) {
    while($row = $result1->fetch_assoc()) {
        echo $row["username"];
    }
} 

?>

最佳答案

我在这里看到的问题是,如果页面重新加载,计时器将重置。

如果您需要脚本每小时运行一次,那么您确实应该考虑使用 cron 来运行它。

0 * * * */path/to/php/full/path/to/your/php/file.php

关于javascript - 刷新数据并在时间间隔后重置倒计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39850493/

相关文章:

php - MY_Model - 动态更改表?

mysql - 将多行数据插入一行mysql

mysql - 如何通过 mysql 插入自定义字段和字段值

javascript - 在嵌入灯开关屏幕的 iframe 中,如何从父自定义控件元素调用 java 脚本函数?

c# - 以编程方式从 .NET Webbrowser Control 的下拉列表中选择一个项目

javascript - 当调用来自 iFrame 时,如何获取主机站点的 Http_Referrer?

php - 使用 jquery-chosen 和选定的值

php - Aptana 3.1.1(2012 年 4 月 17 日)不使用 Git 跟踪更改

mysql - 根据最畅销产品选择客户类型

javascript - 突破node.js then()s