2014-10-27 16 views
-1

Я хочу назвать Javascript столько раз, сколько необходимо внутри цикла PHP while. Я пытаюсь выяснить правильный способ вызова нескольких экземпляров функции при загрузке.Looping javascript function onload

Вот код:

<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 параметры до этого цикла.