2017-03-09 46 views
0

每个while循环运行它创建另一个表行和显示相关的数据的时候,我要显示在每行的列倒数计时器(展示时间流逝)。我的下面的脚本只运行一次。你有另一个想法如何做到这一点或做些什么?我在php while循环内写了下面的代码,但只运行一次。请帮助定时器倒计时只运行一次而不是循环之后?

<script> 
counter=0; 
</script> 
<?php 
$count=0; 
while($rowp = $resultp->fetch_assoc()) { 
echo <td><p id='demo",$count,"'></p></td> 
?> 
<script> 
var countDownDate = new Date("<?php echo $enterytime1; ?>").getTime(); 

// Update the count down every 1 second 
var x = setInterval(function() { 

    // Get todays date and time 
    var now = new Date().getTime(); 

    // Find the distance between now an the count down date 
    var distance = now - countDownDate; 

    // Time calculations for days, hours, minutes and seconds 
    var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
    var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
    var seconds = Math.floor((distance % (1000 * 60))/1000); 

    // Output the result in an element with id="demo" 
    document.getElementById("demo" + counter).innerHTML = hours + "h " + minutes + "m " + seconds + "s "; 

    // If the count down is over, write some text 
    if (distance < 0) { 
     clearInterval(x); 
     document.getElementById("demo").innerHTML = "EXPIRED"; 
    } 
}, 1000); 
</script> 
<?php } 
?> 
+0

PHP veriable $ while循环运行每次enterytime1改变它的值。 –

+0

我使用计数器变量等于0,而在循环开始但仍没有之前.. :( –

+0

您正在打印整个脚本while循环? –

回答

0

是你必须为所有列创建新的倒计时

+0

它没有,但脚本只运行一次:( –

+0

请立即校验码。它更多现在清除 –

0

可能是你,如果条件是true - 倒数日期>现在 - 和它终止间隔。

+0

没有一切正常,只希望脚本在while循环运行时每次运行 –

+0

其中是while while循环? – Hikmat

+0

Hikmat现在请检查代码现在它更清楚 –

0

我猜测它会直接过期的吧?你有错误的顺序。它应该是周围的其他方法:

VAR距离=倒数日期 - 现在;

+0

没有它没有它是顺序是好的,问题是脚本运行只有一次 –

+0

如果我把这个未来的日期小提琴,使用你的代码,直接过期:https://jsfiddle.net/pcqopt6v/。但是,如果您交换了这些值,它将起作用:https://jsfiddle.net/bjkr8mm9/2/如果您100%确定这不是问题,那么可能发生的另一件事是您正在关闭窗口JS正在运行。 – sfratini

+0

请现在检查代码。现在更清楚 –

0

我取代php代码的日期和我改变了distance计算。试试这个,如果有任何变化,然后让我知道

var countDownDate = new Date(2017, 2, 10, 12, 9, 40, 0).getTime(); 
 
counter = 0; 
 
// Update the count down every 1 second 
 
var x = setInterval(function() { 
 

 
    // Get todays date and time 
 
    var now = new Date().getTime(); 
 

 
    // Find the distance between now an the count down date 
 
    var distance = countDownDate - now; 
 
    // If the count down is over, write some text 
 
    if (distance < 0) { 
 
    clearInterval(x); 
 
    document.getElementById("demo").innerHTML = "EXPIRED"; 
 
    } 
 
    // Time calculations for days, hours, minutes and seconds 
 
    var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
 
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
 
    var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
 
    var seconds = Math.floor((distance % (1000 * 60))/1000); 
 
    counter++; 
 
    // Output the result in an element with id="demo" 
 
    var newDiv = document.createElement("div"); 
 
    newDiv.setAttribute("id", "demo" + counter); 
 
    var node = document.createTextNode(days + "days " + hours + "h " + minutes + "m " + seconds + "s "); 
 
    newDiv.appendChild(node); 
 
    if (document.getElementById("demo" + counter) != null) { 
 
    document.getElementById("demo" + counter).innerHTML = days + "days " + hours + "h " + minutes + "m " + seconds + "s "; 
 
    } else { 
 
    document.body.appendChild(newDiv); 
 
    } 
 
    if (counter > 10) 
 
    counter = 0; 
 

 
}, 1000);
div { 
 
    border: 1px black solid; 
 
}
<div id='demo'></div>

+0

我正在使用计数器,因为我在循环的每一行都倒计时。正如我提到的每一行都是变化。 –

+0

所以,你的页面有多少行 – vijay

+0

实际上是从mysql查询循环获取数据,因此它取决于查询。 –