Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2011, 13:06
oms02
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años
Puntos: 11
problema con js dentro de un while en php

hola a todos. Estoy teniendo un problema con un codigo en javascript.

No escribo todo el codigo ya que es un poco largo (pero muy simple) y tp creo q sea esencial. Os comento:
Se trata de que quiero mostrar varias cuentas atras (independientes).

Empiezo con php creando una serie de variables (arrays) dentro de un while. Me las llevo a javascript, creo las cuentas atras y las muestro en divs (con imagenes via css).

El problema es el siguiente: si se trata de una sola cuenta atras, todo funciona perfecto, pero cuando he probado con 2, ocurre que el primer conjunto de divs ni se inmuta, ocurriendo la cuenta atras en el 2º conjunto de divs de 2 en 2 segundos.

No entiendo pq leches hace eso, la verdad, pq hago claramente (eso creo yo) la distincion de divs mediante la variable i, pero ..... eso no sucede...

Alguien me puede decir donde tengo el fallo???


Código PHP:
Ver original
  1. <?php
  2. ...
  3. $i=0;
  4. while($tiempos = mysql_fetch_array($consulta))
  5.     {
  6.     $horas[$i][1]=...;
  7.     $horas[$i][0]=...;
  8.     //blablabla...exactamente lo mismo para minutos y segundos....
  9.     ?>
  10.  
  11. <script type="text/javascript">
  12. var decHora = "<?php echo $horas[$i][0] ?>",
  13. uniHora = "<?php echo $horas[$i][1] ?>";
  14.     //blablabla...exactamente lo mismo para minutos y segundos....
  15. var i = "<?php echo $i ?>";
  16.    
  17. cuentaAtras = function(decHora,uniHora,decMin,uniMin,decSeg,uniSeg) {
  18.     $("#dechora"+i).removeClass().addClass("numero"+decHora);
  19.     $("#unihora"+i).removeClass().addClass("numero"+uniHora);
  20.     //blablabla...exactamente lo mismo para minutos y segundos....
  21.     $("#dospuntos1, #dospuntos2").addClass("dospuntos");
  22. }
  23.  
  24. var intervalo = setInterval(function(){
  25.     uniSeg--;
  26.     blablabla....codigo para crear esa cuenta atras....
  27.  
  28. cuentaAtras(decHora,uniHora,decMin,uniMin,decSeg,uniSeg);
  29. },1000);
  30. </script>
  31. <div id="cuentaatras<?php echo $i ?>">
  32.     <div class="tiempos" id="dechora<?php echo $i ?>"></div>
  33.     <div class="tiempos" id="unihora<?php echo $i ?>"></div>
  34.     <div class="tiempos" id="dospuntos1"></div>
  35.     //blablabla...exactamente lo mismo para minutos y segundos....
  36. </div>
  37.     <?php
  38.     $i++;
  39.     }
  40. ?>

Lo he puesto en texto tipo .php pq al fin y al cabo es un php. Disculpad que sea un poco dificil de "leer".
1 saludo a todos y muchas gracias.

Última edición por oms02; 18/02/2011 a las 14:45