Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Dos cuentas atrás a la vez

Estas en el tema de Dos cuentas atrás a la vez en el foro de Javascript en Foros del Web. Buenas, Tengo una función en javascript que trabaja con dos variables, minutos y segundos. La función es una cuenta atrás que va mostrando el tiempo ...
  #1 (permalink)  
Antiguo 31/05/2017, 02:51
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Dos cuentas atrás a la vez

Buenas,

Tengo una función en javascript que trabaja con dos variables, minutos y segundos. La función es una cuenta atrás que va mostrando el tiempo restante. Los minutos y segundos los obtengo mediante php accediendo a una base de datos.

A continuación pongo el código javascript:

Código Javascript:
Ver original
  1. var minutos = <?php echo $minutos ?>;
  2.         var segundos = <?php echo $segundos ?>;
  3.  
  4.     function MiFuncionJS()
  5.     {
  6.         if(segundos>9)
  7.             document.getElementById('demo').innerHTML = "Redireccionando en " + minutos + ":" + segundos;
  8.         else
  9.             document.getElementById('demo').innerHTML = "Redireccionando en " + minutos + ":0" + segundos;
  10.            
  11.         if(segundos==0 && minutos==0)
  12.             document.getElementById('demo').innerHTML = "Cuenta finalizada!!!";
  13.         else
  14.         {
  15.             if(segundos>0)
  16.                 segundos--;
  17.             else if(segundos==0 && minutos>0)
  18.             {
  19.                 segundos = 59;
  20.                 minutos--;
  21.             }
  22.             setTimeout("MiFuncionJS()", 1000);
  23.         }
  24.     }

demo es un elemento <p> creado antes en php

Esta función se carga en el evento onload de <body>

Esto me vale para mostrar una cuenta atrás, pero lo que quiero es mostrar varias cuentas atrás a la vez, dependiendo de la información guardada en la base de datos, puede que sea una cuenta atrás, dos, tres... y que se muestren al mismo tiempo

Esta función trabaja bien cuando se pasa un tiempo en minutos y segundos, pero dependiento de la información guardada en la base de datos tendría que pasar varios tiempos, es decir, varias variables con minutos y segundos. Tendría que modificar la función pero el número de variables es indeterminado...

Se podría llamar a la misma función de alguna forma para que muestre todos los tiempos a la vez?

Gracias
  #2 (permalink)  
Antiguo 31/05/2017, 06: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: Dos cuentas atrás a la vez

podrias crear objeros a partir de la consulta a php:
Código Javascript:
Ver original
  1. var obj1 = {
  2. minutos:1,
  3. segundos:10,
  4. elemento:'reg1'
  5. }
  6. var obj2 = {
  7. minutos:0,
  8. segundos:30,
  9. elemento:'reg2'
  10. }
  11.  
  12.     function MiFuncionJS(X)
  13.     {
  14.         if(X.segundos>9)
  15.             $('#'+X.elemento).html("Redireccionando en " + X.minutos + ":" + X.segundos);
  16.         else
  17.             $('#'+X.elemento).html("Redireccionando en " + X.minutos + ":0" + X.segundos);
  18.            
  19.         if(X.segundos==0 && X.minutos==0)
  20.                $('#'+X.elemento).html("Cuenta Finalziada");
  21.         else
  22.         {
  23.             if(X.segundos>0)
  24.                 X.segundos--;
  25.             else if(X.segundos==0 && X.minutos>0)
  26.             {
  27.                 X.segundos = 59;
  28.                 X.minutos--;
  29.             }
  30.             /*setTimeout(function(){
  31.                 MiFuncionJS(X)
  32.             }, 1000);*/
  33.         }
  34.     }
  35.    
  36. setInterval(function(){
  37.     MiFuncionJS(obj1);
  38. },1000);
  39.  
  40. setInterval(function(){
  41.     MiFuncionJS(obj2);
  42. },1000);
Muestra:
[JSFIDDLE="https://jsfiddle.net/tzadatxs/"][/JSFIDDLE]
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 01/06/2017, 12:30
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Dos cuentas atrás a la vez

Funciona perfectamente, gracias

Pero no entiendo una cosa:

Esta es mi línea:
Código Javascript:
Ver original
  1. document.getElementById('demo').innerHTML = "Redireccionando en " + minutos + ":" + segundos;

Y esta es la de tu código:
Código Javascript:
Ver original
  1. $('#'+X.elemento).html("Redireccionando en " + X.minutos + ":" + X.segundos);

Qué es el símbolo dólar? El dólar es lo mismo que document.getElementById?

Qué es '#'? A qué hace referencia?

Y el .html es lo mismo que .innerHTML para hacer referencia al contenido del span?

Gracias!
  #4 (permalink)  
Antiguo 01/06/2017, 15:23
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: Dos cuentas atrás a la vez

no una es javascript puro, es decir la primera y la otra es con Jquery

$ eds la referencia a Jquery.
'#' le indicas a Jquery que buscas una id.
.html() es el equivalente a innerHTML en jquery
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 02/06/2017, 05:18
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Dos cuentas atrás a la vez

Ok

Gracias!!!

Etiquetas: cuentas, forma, funcion, html, php, 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 22:20.