Foros del Web » Programando para Internet » Javascript »

Ayuda con Ajax.PeriodicalUpdater

Estas en el tema de Ayuda con Ajax.PeriodicalUpdater en el foro de Javascript en Foros del Web. Hola todos foreros, espero ande todo bien.... pues le comento mi duda.. resulta que estoy usando la libreria prototype para poder utilizar el metodo de ...
  #1 (permalink)  
Antiguo 17/03/2011, 09:51
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Pregunta Ayuda con Ajax.PeriodicalUpdater

Hola todos foreros, espero ande todo bien.... pues le comento mi duda.. resulta que estoy usando la libreria prototype para poder utilizar el metodo de Ajax.PeriodicalUpdater, para actualizar cada n segundos una pagina que se muestra en un div, hasta ahi todo correcto, tengo la pagina principal dos botno y un div, de estos dos botones cada uno llama a una pagina diferente para que se cargue e el div. el boton A llama la pagina A y el boton B la pagina B. el problema es que quiero usar el periodicalupdater para que actualize la pagina dependiendo de cual sea o mejor dicho llame a traves del boton, es por eso que hago un llamado a la funcion de periodicalupdater a traves del evento onclick del boton, en el llamdo de la funcion envio dos parametros 1. es la pagina a llmar para que cargue solo la pagina que se haya llamado con el boton y 2. y 2. el id del boton para poner el atributo onclic del otro boton como ' ', ta que igual se seguia ejecutando y me ocasionaba conflicto de cambiaban las paginas automaticamente. Aqui les dejo lo que tengo y espero me pueda guiar.

Código Javascript:
Ver original
  1. <script type="text/javascript"
  2.    src="../js/prototype.js">
  3.    </script>
  4. <script>
  5.  
  6. function timer(page, id)
  7. {
  8.    document.getElementById(id).onClick = '';
  9.    new Ajax.PeriodicalUpdater('contenido', page, {
  10.      method: 'get', frequency: 1, decay: 2
  11.    });
  12.  
  13. }
  14. </script>

Código HTML:
Ver original
  1. <body style="padding-top:1%;">
  2. <div id="hero-slider" >
  3.   <form name="form1"><table width="160" border="0" align="center">
  4.     <tr>
  5.       <td width="75" height="96">
  6. <input type="button" id="boton1" class="boton2" onclick="timer('alertas.php', this.id)" name="Submit" value="" />
  7.         <div class="Estilo3" style="position:relative; bottom:10%; width: 75px;">
  8.           <div align="center">Radicacion</div>
  9.       </div></td>
  10.       <td width="75" height="96">
  11. <input type="button" id="boton2" class="boton2" onclick="timer('alertas_com.php', this.id)" name="Submit2" value="" />
  12. <div class="Estilo5" style="position:relative; bottom:10%; width:75" >
  13.     <div align="center">Licencia</div>
  14.   </div></td>
  15.     </tr>
  16.   </table></form>
  17.  
  18.   <div id="contenido" align="center" style="padding-top:2%">
  19. <div id="precarga" align="center"></div>
  20.   </div>
  21.         <!-- .mask -->
  22. </div> <!-- #hero-slider -->
  23. </body>

De antemano muchas gracias por su atencion.
  #2 (permalink)  
Antiguo 17/03/2011, 10:26
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Ayuda con Ajax.PeriodicalUpdater

Que tal andruxand,

Por un lado, que bueno ver algo diferente de jQuery y por otro estas utilizando Prototype a medias, si son dos botones nada mas, podrias hacer algo asi(sustitui la funcion timer por lo que sigue y elimina los onclick de los elementos):
Código Javascript:
Ver original
  1. var updater = function(target, url, params) {
  2.     return new Ajax.PeriodicalUpdater(target, url, params || {
  3.         method: 'get', frequency: 1, decay: 2
  4.     });
  5. }
  6. document.observe('dom:loaded', function() {      
  7.     $('boton1').observe('click', function(e){                              
  8.         e.stop();
  9.         this.stopObserving('click');                           
  10.         updater('contenido', 'alertas.php');               
  11.     });            
  12.     $('boton2').observe('click', function(e){                              
  13.         e.stop();
  14.         this.stopObserving('click');                           
  15.         updater('contenido', 'alertas_com.php');               
  16.     });
  17. });

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 17/03/2011, 10:38
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Ayuda con Ajax.PeriodicalUpdater

hola masterpuppet.

Antes que nada muchas gracias por tu respuesta; pues quería decirte que hice los pasos que me mencionaste anteriormente pero mira que no me funciona, no se que pueda ser, espero me guíes y disculpa mi ignorancia y de antemano muchas gracias nuevamente por tu ayuda
  #4 (permalink)  
Antiguo 17/03/2011, 11:12
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Ayuda con Ajax.PeriodicalUpdater

A ver vamos de nuevo, entre los tags head tenes que tener algo asi:

Código HTML:
Ver original
  1. <script type="text/javascript" src="../js/prototype.js"></script>
  2. <script type="text/javascript">
  3. var updater = function(target, url, params) {
  4.     return new Ajax.PeriodicalUpdater(target, url, params || {
  5.         method: 'get', frequency: 1, decay: 2
  6.     });
  7. }
  8. document.observe('dom:loaded', function() {      
  9.     $('boton1').observe('click', function(e){                              
  10.         e.stop();
  11.         this.stopObserving('click');                            
  12.         updater('contenido', 'alertas.php');                
  13.     });            
  14.     $('boton2').observe('click', function(e){                              
  15.         e.stop();
  16.         this.stopObserving('click');                            
  17.         updater('contenido', 'alertas_com.php');                
  18.     });
  19. });

y el html deberia ser asi:

Código HTML:
Ver original
  1. <body style="padding-top:1%;">
  2. <div id="hero-slider" >
  3.   <form name="form1"><table width="160" border="0" align="center">
  4.     <tr>
  5.       <td width="75" height="96">
  6. <input type="button" id="boton1" class="boton2" name="Submit" value="" />
  7.         <div class="Estilo3" style="position:relative; bottom:10%; width: 75px;">
  8.           <div align="center">Radicacion</div>
  9.       </div></td>
  10.       <td width="75" height="96">
  11. <input type="button" id="boton2" class="boton2" name="Submit2" value="" />
  12. <div class="Estilo5" style="position:relative; bottom:10%; width:75" >
  13.     <div align="center">Licencia</div>
  14.   </div></td>
  15.     </tr>
  16.   </table></form>
  17.  
  18.   <div id="contenido" align="center" style="padding-top:2%">
  19. <div id="precarga" align="center"></div>
  20.   </div>
  21.         <!-- .mask -->
  22. </div> <!-- #hero-slider -->
  23. </body>

si te sigue sin funcionar, hace un alert en el click de los botones, para comprobar que se setearon correctamente los eventos, asi:

Código Javascript:
Ver original
  1. ...
  2. $('boton1').observe('click', function(e) {                              
  3.     alert('__CLICKED__');
  4.     e.stop();
  5.     this.stopObserving('click');                            
  6.     updater('contenido', 'alertas.php');                
  7. });

bueno proba y nos comentas.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 17/03/2011, 11:28
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Ayuda con Ajax.PeriodicalUpdater

masterpuppet de nuevp gracias pero mira que sin resultados .

realize la combprobacion para verificar que los eventos se setearon correctamente a traves del alerta al hacer clic en un boton y nada, no se que tendra esto
  #6 (permalink)  
Antiguo 17/03/2011, 11:33
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Ayuda con Ajax.PeriodicalUpdater

Mmmm raro, podes pegar el html completo generado ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 17/03/2011, 11:34
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Ayuda con Ajax.PeriodicalUpdater

mira aqui esta:

Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  5. <title>Create a Custom Content Slider with jQuery</title>
  6.  
  7.       <script type="text/javascript" src="../js/prototype.js"></script>
  8.       <script type="text/javascript">
  9.       var updater = function(target, url, params) {
  10.           return new Ajax.PeriodicalUpdater(target, url, params || {
  11.               method: 'get', frequency: 1, decay: 2
  12.           });
  13.       }
  14.       document.observe('dom:loaded', function() {      
  15.           $('btn1').observe('click', function(e){                              
  16.               e.stop();
  17.               this.stopObserving('click');                            
  18.               updater('contenido', 'alertas.php');                
  19.           });            
  20.           $('btn2').observe('click', function(e){                              
  21.               e.stop();
  22.               this.stopObserving('click');                            
  23.               updater('contenido', 'alertas_com.php');                
  24.           });
  25.       });
  26.       </script>
  27. </head>
  28.       <body style="padding-top:1%;">
  29.       <div id="hero-slider" >
  30.         <form name="form1"><table width="160" border="0" align="center">
  31.           <tr>
  32.             <td width="75" height="96">
  33.       <input type="button" id="btn1" class="boton2" name="Submit" value="" />
  34.               <div class="Estilo3" style="position:relative; bottom:10%; width: 75px;">
  35.                 <div align="center">Radicacion</div>
  36.             </div></td>
  37.             <td width="75" height="96">
  38.       <input type="button" id="btn2" class="boton2" name="Submit2" value="" />
  39.       <div class="Estilo5" style="position:relative; bottom:10%; width:75" >
  40.           <div align="center">Licencia</div>
  41.         </div></td>
  42.           </tr>
  43.         </table></form>
  44.  
  45.         <div id="contenido" align="center" style="padding-top:2%">
  46.       <div id="precarga" align="center"></div>
  47.         </div>
  48.               <!-- .mask -->
  49.       </div> <!-- #hero-slider -->
  50.       </body>
  51. </html>
  #8 (permalink)  
Antiguo 17/03/2011, 11:40
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Ayuda con Ajax.PeriodicalUpdater

Me funciona correctamente en ff y chrome, en que navegador lo estas probando ?, mira en firebug a ver si te tira algun error, y comproba que la ruta a la libreria de prototype este bien.
__________________
http://es.phptherightway.com/
thats us riders :)
  #9 (permalink)  
Antiguo 17/03/2011, 11:47
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Ayuda con Ajax.PeriodicalUpdater

lISTO SOLUCIONADO ... UTILIZE EL FIREBUG Y VI QUE HABIA UN ERROR AL COMPILAR EL SCRIPT QUE ME PASASTE JUSTO EN LA LINEA 15... ME ENTRO LA DUDA QUE TALVES PODRIA SER LA VERION DEL PROTOTYPE, ASI QUE ME DESCARGUE DE NUEVO LA LIBRERIA Y PRECISO ESO ERA...

DE VERDAD QUE PENA CONTIGO, PERO TE AGRADEZCO MUCHO POR TU AYUDA UN SALUDO MUY GRANDE DESDE COLOMBIA

edito: aun presenta incosistencias al cargar las pagina en el div... cargo una al dar clic en el boton ok.. doy clic en el toro boton para cargar otra y aparece pero luego aparece la primera y vuelve y aparece a la que recie abri y asi... voy a intentar ver que pasa
  #10 (permalink)  
Antiguo 17/03/2011, 12:13
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Ayuda con Ajax.PeriodicalUpdater

ya carga correctamente las paginas pero solo tiene el problema de que por ejemplo cargo por segunda vez una pagina en el div y este luego de tres segundos aproximadamente carga la otra y asi sucesivamente, la verdad no se a que se pueda deber
  #11 (permalink)  
Antiguo 17/03/2011, 12:16
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Ayuda con Ajax.PeriodicalUpdater

Es que de esa forma lo haz planteado, si el contenedor es el mismo y clickeas los dos botones, uno sobreescribe al otro continuamente, no deberian ser dos contenedores diferentes ? o cuando seleccionas uno pare el otro ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #12 (permalink)  
Antiguo 17/03/2011, 12:25
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Ayuda con Ajax.PeriodicalUpdater

me imagino que la mas acertada es cuando doy clic en el botan A me cargue la pagina A y de ahi en adelante siga actualizandola cada n segundos, eso mientra me encuentre en la pagina A. asi cuando haga clic en el boton B cargue la pagina B y solo actulize cada n segundo la pagina B y asi sucesivamente,no que pase el pequeño problema que llega el momento que automaticamente carga la otra pagina sin haber dado clic e ningun boton.

Etiquetas: Ninguno
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 02:02.