如何在php中显示多个倒计时计时器
How to display multiple Countdown timer in php
首先,我从数据库中选择所有数据时间,但当显示到页面时,只有前一个项目会显示计时器,其他项目不能显示计时器。
<?php
$stmtAuction = $db->prepare("SELECT * FROM auction WHERE expired_at >= CURDATE() AND status = 'available' ORDER BY expired_at ASC");
$stmtAuction->execute();
if ($stmtAuction->rowCount() > 0) {
while ($item = $stmtAuction->fetch()) {
?>
<span id='countdown' value='<?php echo $item['expired_at'];?>'></span>
<?php
}
?>
<script>
$("#countdown").countdown($('#countdown').attr('value'), function(event) {
$(this).text(
event.strftime('%D days %H:%M:%S')
);
});
</script>
如何显示每个项目的计时器??
您的问题是由不唯一的id
s引起的。您的$stmtAuction->rowCount()
编号为id='countdown'
。id
应该是唯一的。因此javascript/jQuery将只找到第一个/唯一的id='countdown'
。您需要使用class='countdown'
而不是
<?php
$stmtAuction = $db->prepare("SELECT * FROM auction WHERE expired_at >= CURDATE() AND status = 'available' ORDER BY expired_at ASC");
$stmtAuction->execute();
if ($stmtAuction->rowCount() > 0) {
while ($item = $stmtAuction->fetch()) {
?>
<span class='countdown' value='<?php echo $item['expired_at'];?>'></span>
^^^^^-change from id to class
<?php
}
}
?>
现在,在javascript中,您需要使用类选择器$(".countdown")
,并使用$.each()
在每个类上循环。
<script>
$('.countdown').each(function(){
$(this).countdown($(this).attr('value'), function(event) {
$(this).text(
event.strftime('%D days %H:%M:%S')
);
});
});
</script>
jsFiddle示例-https://jsfiddle.net/smh5nhgz/1/
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 递归倒计时计时器
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- 我需要JS/jQuery中的倒计时计时器
- 设置Javascript倒计时计时器的初始值
- JavaScript倒计时计时器不会显示两次
- 如何设置此javascript倒计时计时器的样式
- 如何使用momentjs将澳大利亚/墨尔本时区设置为倒计时计时器
- 如何用JavaScript编写倒计时计时器
- 试图修复一个倒计时计时器问题,该问题导致计时器运行,然后在使用Javascript时崩溃约10秒
- 如何制作倒计时计时器并在时间到时更新MySQL记录
- 如何制作两个倒计时计时器,如果一个开始,另一个会停止
- 创建php/javascript倒计时计时器时出现问题
- 当分钟和秒为0时,倒计时计时器不会减少小时数