【发布时间】:2015-10-27 14:26:56
【问题描述】:
所以我试图对数据库中的每个值进行倒计时。该值以秒为单位,我想从(比如说 100)倒计时到 0,然后显示 Finished
但是,当我尝试这样做时,我的结果变得一团糟,并且没有以 1 秒的间隔倒计时。如果有 3 个结果,则以 3 为间隔倒计时。 对于我缺乏这方面的知识,我提前道歉。
这是我的全部代码
<?php
$curtime = date("Y-m-d h:i:s");
$curtime = strtotime("$curtime UTC");
if (logged_in() === true){
$results = $dbc->query($sql);
while ($attacks = mysqli_fetch_array($results)){
$attime = $attacks['date'] - ($attacks['length'] + $curtime);
?>
<tr>
<td class="text-left"><?php echo $attacks['attack_ip'];?></td>
<td class="text-left"><?php echo $attacks['port'];?></td>
<td class="text-left"><?php echo $attacks['method'];?></td>
//////This is where the countdown is//////
<td id="<?php echo $attacks['attack_id'];?>" class="text-left"><?php echo $attime;?></td>
<td><button type="button" class="btn btn-effect-ripple btn-square btn-danger">Stop</button></td>
</tr>
<script type="text/javascript">
var sec = <?php echo $attime;?>;
var timer = setInterval(function() {
$('td#<?php echo $attacks['attack_id'];?>').text(sec--);
if (sec == -1) {
$('td#<?php echo $attacks['attack_id'];?>');
clearInterval(timer);
}
if (sec == -1) {
$('td#<?php echo $attacks['attack_id'];?>').html("<b>Finished</b>");
clearInterval(timer);
}
}, 1000);
</script>
<?php
} //End WHILE
}//END IF
?>
【问题讨论】:
-
PHP 运行,然后 JS 运行。您应该输出页面,然后发送 ajax 请求以在所需的时间间隔内获取所需的数据。 i.stack.imgur.com/8uaXY.gif
-
@chris85 不需要 ajax 来做这个
-
@charlietfl 我还能怎么做?