2017-03-09 45 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查詢循環獲取數據,因此它取決於查詢。 –