Foros del Web » Programando para Internet » Javascript »

Varias cuentas regresivas a la vez

Estas en el tema de Varias cuentas regresivas a la vez en el foro de Javascript en Foros del Web. Buenas a todos, Necesito mostrar varias cuentas regresivas a la vez Los valores los tomaré de una base de datos, podrá ser una sóla cuenta ...
  #1 (permalink)  
Antiguo 10/06/2017, 04:21
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Varias cuentas regresivas a la vez

Buenas a todos,

Necesito mostrar varias cuentas regresivas a la vez
Los valores los tomaré de una base de datos, podrá ser una sóla cuenta atrás o varias

Código HTML:
Ver original
  1. <span id=demo4></span><br>
  2. <span id=demo5></span><br>
  3. <span id=demo6></span>

Código Javascript:
Ver original
  1. //var a = [4, 5, 6];
  2.     var a=[];
  3.     var b={};
  4.     for(var i=3;i<6;i++)
  5.     {
  6.         b = {segundos: (i+1), elemento: 'demo' + (i+1)};
  7.         a.push(b);
  8.     }
  9.  
  10.     function mifun(X)
  11.     {
  12.         if(X.segundos>0)
  13.         {
  14.             document.getElementById(X.elemento).innerHTML = X.segundos;
  15.             X.segundos--;
  16.         }
  17.         else document.getElementById(X.elemento).innerHTML = "Cuenta finalizada";
  18.     }
  19.  
  20.     setInterval(function(){mifun(a[0]);},1000);
  21.     setInterval(function(){mifun(a[1]);},1000);
  22.     setInterval(function(){mifun(a[2]);},1000);

Esto me muestra correctamente las cuentas a la vez

Pero dependiendo de la información guardada en la base de datos podrá ser una o varias cuentas. ¿Cómo puedo hacer para no tener que poner las 3 líneas últimas del código javascript? He probado en un bucle y cambiando a[0], a[1] y a[2] por a[cont] pero no funciona...

Gracias
  #2 (permalink)  
Antiguo 10/06/2017, 07:32
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Varias cuentas regresivas a la vez

crea un while dentero del script, yo lo he hecho con graficos de echart y con el calendario de fullcalendar por ejemplo
Código Javascript:
Ver original
  1. //var a = [4, 5, 6];
  2.     var a=[];
  3.     var b={};
  4.     for(var i=3;i<6;i++)
  5.     {
  6.         b = {segundos: (i+1), elemento: 'demo' + (i+1)};
  7.         a.push(b);
  8.     }
  9.  
  10.     function mifun(X)
  11.     {
  12.         if(X.segundos>0)
  13.         {
  14.             document.getElementById(X.elemento).innerHTML = X.segundos;
  15.             X.segundos--;
  16.         }
  17.         else document.getElementById(X.elemento).innerHTML = "Cuenta finalizada";
  18.     }
  19. <?php while($row = $X->fetch_array()){ ?>
  20.     setInterval(function(){mifun(<?php echo 4row['campo'] ?>);},1000);
  21. <?php } ?>

prueba asi a ver
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 11/06/2017, 12:57
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Varias cuentas regresivas a la vez

Gracias xfxstudios...

A ver, en la base de datos hay una tabla tiempos, en esa tabla en cada fila hay dos fechas guardadas. Cuando se ejecuta el PHP se hace la resta de las dos fechas y mediante una fórmula se pasa esa resta a minutos y segundos y se va guardando en un array. Por cada fila se guardan dos datos en el array, los minutos y los segundos. Yo he puesto un ejemplo sólo con segundos para simplificar.

Luego en javascript obtengo el array de PHP. Por lo tanto tendré en javascript un array nuevo con los valores ya guardados en minutos y segundos. En el ejemplo que yo he puesto sólo he puesto 3 valores para hacerlo más sencillo, que son segundos (4, 5 y 6 segundos)

Se podría hacer desde javascript de alguna manera para no tener que escribir esas 3 últimas líneas? Ya que en un bucle no funciona o no se cómo ponerlo realmente

Gracias!!!

Etiquetas: cuentas, forma, funcion, html, vez
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:22.