2014-10-27 68 views
-1

我想在PHP while循環內根據需要多次調用Javascript。我試圖找出加載時調用多個函數實例的正確方法。循環播放一個javascript函數

下面是代碼:

<script> 
    var interval; 
    var minutes = 1; 
    var seconds = 10; 
    var nbcounters = '<?php echo $nbcounters ;?>' 
    window.onload = function() { 
     for (i = 0; i < nbcounters; i++) { 
      countdown('c'.'<?php echo $value ;?>'); 
     } 
    } 


    function countdown(element) { 
     interval = setInterval(function() { 
      var el = document.getElementById(element); 
      if(seconds == 0) { 
       if(minutes == 0) { 
       location.reload(true); 
       } else { 
        minutes--; 
        seconds = 60; 
       } 
      } 
      if(minutes > 0) { 
       var minute_text = minutes + (minutes > 1 ? ' min(s)' : ' min'); 
       var secound_text = ''; 
       el.innerHTML = 'Ready in ' + minute_text; 
      } else { 
       var minute_text = ''; 
       var second_text = seconds + (seconds > 1 ? ' sec(s)' : ' sec'); 
       el.innerHTML = 'Ready in ' + second_text; 
      } 
      seconds--; 
     }, 1000); 
    } 
    </script> 
<?php 
$nbcounters = 5; 
$value = 0; 
while ($value < $nbcounters) { 
    echo "<div id='c$value'></div><br>"; 
    $value++; 
} 
?> 

回答

1

你混合時使用php循環,當js循環。基本上使用php循環產生像這裏N調用到js功能:

window.onload = function() { 
    <?php 
    for ($i = 0; $i < $nbcounters; $i++) { 
     echo "countdown('c".<?php echo $i ;?>."');"; 
    } 
    ?> 
} 

這將導致HTML這樣的:

window.onload = function() { 
    countdown('c0'); 
    countdown('c1'); 
    countdown('c2'); 
    countdown('c3'); 
    countdown('c4'); 
} 

但一定要這個循環開始前先設置你php參數。