如何使javascript在SQLWhile循环中回显所有数据?
因此,我试图为我的脚本做一个计时器,但它只对最后一个结果进行倒计时,而不是对所有结果进行倒计时,并且对于查询返回的所有结果,都显示最后一个结果的倒计时。任何帮助都将不胜感激。谢谢如何使javascript在SQLWhile循环中回显所有数据?,javascript,php,mysql,pdo,Javascript,Php,Mysql,Pdo,因此,我试图为我的脚本做一个计时器,但它只对最后一个结果进行倒计时,而不是对所有结果进行倒计时,并且对于查询返回的所有结果,都显示最后一个结果的倒计时。任何帮助都将不胜感激。谢谢 <?php $q = $handler->prepare("SELECT * FROM pending_payments WHERE user_id = ? AND status = ?"); $q->bindParam(1, $session_id); $q->bindParam(2, $p
<?php
$q = $handler->prepare("SELECT * FROM pending_payments WHERE user_id = ? AND status = ?");
$q->bindParam(1, $session_id);
$q->bindParam(2, $pending);
$q->execute();
if($q->rowCount() > null){
?>
<h4 class="title"> Pending Payment </h4>
<div class="squiggly-border"></div>
<table class="table table-index">
<thead>
<tr>
<th>#</th>
<th>Item</th>
<th>Expires</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
while($r = $q->fetch()) {
$pending_payment_id = $r['id'];
$pending_item = $r['item'];
$pending_expiry = $r['expiry'];
?>
<script type="text/javascript">
var count = <?php if($dateUNIX < $pending_expiry){ echo $pending_expiry - $dateUNIX; } ?>;
var counter = setInterval(timer, 1000); //1000 will run it every 1 second
function timer() {
count = count - 1;
if (count == -1) {
clearInterval(counter);
return;
}
var seconds = count % 60;
var minutes = Math.floor(count / 60);
var hours = Math.floor(minutes / 60);
minutes %= 60;
hours %= 60;
document.getElementById("pEFTimer<?php echo $r['id'] ?>").innerHTML = hours + " hours " + minutes + " minutes "; // watch for spelling
}
</script>
<tr>
<td class="text"><?php echo $pending_payment_id; ?></td>
<td class="text"><?php echo $pending_item ?></td>
<td class="text" id="pEFTimer<?php echo $r['id'] ?>"></td>
<td class="text"><a href="pendingPayment<?php echo $r['id']; ?>" ><button class="btn btn-success btn-xs">Proceed to Payment</button></a></td>
</tr>
<?php
}
echo '</tbody></table>';
}
?>
待付款
#
项目
到期
var计数=;
var计数器=设置间隔(计时器,1000)//1000将每1秒运行一次
函数计时器(){
计数=计数-1;
如果(计数==-1){
清除间隔(计数器);
回来
}
var秒数=计数%60;
var分钟=数学地板(计数/60);
var小时=数学楼层(分钟/60);
分钟%=60;
小时%=60;
document.getElementById(“pEFTimer”).innerHTML=hours+“hours”+minutes+“minutes”;//注意拼写
}
在javascript中,函数是执行某些代码的变量,因此基本上不是为每一行创建函数,而是更新函数以只跟踪最后一个元素
让我们明确每种语言的工作位置,PHP在服务器中输出html,html由浏览器解析,然后Javascript在浏览器(客户端)中执行
话虽如此,解决这个问题的最佳方法是,您应该将数据作为每行特定元素的数据属性存储在HTML中,使用JavaScript检索数据,然后启动一个超时,同时更新所有元素。使用console.log(someoutput)获取输出。@NorbertvanNobelen我不知道我是否把它放在了不正确的位置,但你能给我一个例子说明如何添加控制台。Log你可以将你的PHP作为Javascript变量(数组)输出。@Milkmannetje你能给我一个例子吗?我知道你说的是什么,但这不会减慢页面速度吗?一点也不,也许10年或15年前。但使用现代浏览器,他们的JavaScript机器速度惊人。我尝试过,但失败了。你能告诉我你会怎么做吗。谢谢(我对编程还是比较陌生)谢谢非常有帮助:)还有人知道怎么做@Ramy Deeb所说的吗。我还在挣扎