Foros del Web » Programando para Internet » Javascript » Frameworks JS »

ajax que solo funciona una vez

Estas en el tema de ajax que solo funciona una vez en el foro de Frameworks JS en Foros del Web. hola, estoy emezando en esto del ajax, que es super potente. de momento estoy usando librerias jquery para no volverme loco. Estoy usando una libreria ...
  #1 (permalink)  
Antiguo 08/11/2010, 10:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
ajax que solo funciona una vez

hola, estoy emezando en esto del ajax, que es super potente. de momento estoy usando librerias jquery para no volverme loco.

Estoy usando una libreria que es ajaxlink, sirve para usar links por ajax.

El problema es el siguiente. lo estoy usando para un carrito de la compra. añadir elementos al carrito lo hace genial, aparece el elemento en el carrito sin problemas.
despues en el carrito cada elemento tiene un link para eliminarlo. tambien con ajaxlink. en cada url le paso el id del producto a borrar, hago la llamada a la pagina que elimina el producto y recargo el div dek carrito. Hasta ahí todo bien. Pero si pincho en otro elemento despues, el link ya no me recarga solo el div, sino que me lo carga en una pagina completa.

Ni idea de que puede ser, lo que si he visto es que el ajax no cambia el codigo fuente despues de usar ajax para añadir o borrar elementos, es eso normal? puede venir por ahi el fallo?
  #2 (permalink)  
Antiguo 08/11/2010, 10:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ajax que solo funciona una vez

Cita:
Iniciado por monxas Ver Mensaje
hola, estoy emezando en esto del ajax, que es super potente. de momento estoy usando librerias jquery para no volverme loco...
No será que te estás volviendo loco por usar una librería,... si Ajax no es más que un objeto más la respuesta del servidor...

Cita:
Iniciado por monxas Ver Mensaje
...
Ni idea de que puede ser, lo que si he visto es que el ajax no cambia el codigo fuente despues de usar ajax para añadir o borrar elementos, es eso normal? puede venir por ahi el fallo?
¿Ajax puede cambiar acaso el "código fuente..."?

Perdona pero me he perdido

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 08/11/2010, 10:35
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

gracias por responder tan rapido.

Lo de la libreria de momento todo han sido ventajas, solo llevo desde hoy por la mañana y el fallo no me parece que vaya por ahi. (creo) Aunque me metere mas a fondo en ajax en cuanto pueda.

Si yo mediante ajax cambio el contenido de un div con nuevo contenido del servidor, eso no deberia mostrarse al ver el codigo fuente de la pagina? el html y javascript vamos.

si yo tengo un carrito vacio, y con ajax llega al servidor la peticion de añadir tal producto, y este devuelve un cacho de html que vuelve al pc y sustituye el contenido antiguo, ese html tendria que aparecer en algun sitio, digo yo ¿no?
  #4 (permalink)  
Antiguo 08/11/2010, 10:40
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: ajax que solo funciona una vez

No lo verás con un "VER CÓDIGO FUENTE". Podrás verlo si, por ejemplo, escribes en la barra de direcciones del navegador esto:
Código:
javascript:alert(document.body.innerHTML);void(0);
  #5 (permalink)  
Antiguo 08/11/2010, 10:44
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: ajax que solo funciona una vez

Ejecútalo en Firefox y observa en la consola de errores si te muestra algún error.
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 08/11/2010, 10:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

no hay errores en la consola.

no se que puede estar pasando. voy a dejar la url, la pagina esta a medio montar, os explico:

el carrito basicamente es el que veis. para añadir aun no funciona con elementos reales, asi que en el footer abajo del todo hay dos links, uno para añadir articulos y otro para que cargue el carrito de nuevo(ese ya no tiene sentido, pero funcionar funciona.)

la direccion es frescosfam.com/beta

muchas gracias
  #7 (permalink)  
Antiguo 08/11/2010, 11:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ajax que solo funciona una vez

Hola:

Un objeto Ajax se inicializa, se programa la respuesta y luego se hace la petición... no hay más, o sea que los laureles para las librerías no tienen mucho sentido.

Con eso de los carritos de compra, no he urgado mucho, pero simplemente es cuestión de saber usar las variables de sesión.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 08/11/2010, 11:27
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

el carrito en si esta echo entero con variables de sesion y funciona bien, y la libreria la uso de momento haste que aprenda bien como funciona ajax, que no es tan trivial para mi como me gustaria.

De todas formas el fallo es del tipo "inexplicable". cuando todo funciona salvo el link en cuestion, y funciona bien la primera vez. no consigo entender que cambia despues.

Un saludo!
  #9 (permalink)  
Antiguo 08/11/2010, 15:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

Puede ser que el fallo esté en que el link con el que tengo problemas estédentro del div carrrito?
solo falla cuando uso el link despues de que el carrito se haya actualizado a traves de ajax.

es decir:
cargo por primera vez la pagina:
link dentro de div carrito funciona

cargo de forma asincrona el div carrito:
ya no funciona

sabeis que puede ser?
  #10 (permalink)  
Antiguo 08/11/2010, 18:36
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

Perdon, en enlace no es completo, el correcto esta aqui:

frescosfam.com/beta/camisetas.asp
  #11 (permalink)  
Antiguo 09/11/2010, 10:51
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

Nadie puede echarme una mano? llevo un par de dias atascado...

no me importaria invitar a un cafe (via paypal) al que consiga echarme una mano...
  #12 (permalink)  
Antiguo 09/11/2010, 11:44
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 122
Respuesta: ajax que solo funciona una vez

Hola, lo que esta sucediendo seguramente es que a la hora de recargar el div, estas olvidando agregar el listener otra ves al boton o botones de eliminar para que realicen la operacion, por eso el link en realidad esta llevando a la url que tiene asignado. Quizas podrias poner el codigo de cuando empiezas a escuchar los eventos click de esos anchor y de donde recargas el div.
  #13 (permalink)  
Antiguo 09/11/2010, 17:27
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

el listener es a traves de una clase, y la clase en teoria esta siempre presente.

Ese es el document ready que escucha el enlace

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3.  
  4.                    
  5.     $(".ajaxLink").ajaxLink({
  6.         event:'click',
  7.         beforeSend: function(){alert("hola")}
  8.     });                
  9.  
  10.                            
  11.     var options = {
  12.              target:     '#carrito'
  13. };
  14.  
  15.  });
  16.    
  17.        
  18.  </script>


ese alert se ejecutaria antes de hacer la llamada, y no salta cuando rompe, es decir, el fallo es previo...

entonces que puede ser?

Yo juraria que el class no se mueve de su sitio aunque se recargue la pagina.

os invito de nuevo a entrar en la pagina
frescosfam.com/beta/camisetas.asp

el carrito esta a mano izquierda y para añadir productos de momento solo se puede en el footer negro de abajo, donde pone suma. luego ya el carrito se llena.

gracias!
  #14 (permalink)  
Antiguo 11/11/2010, 18:26
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

Nadie le puede echar un ojo?

Lo del café via papal va en serio, no intento engañar a nadie, solo necesito hacer eso y no veo el problema.

Última edición por monxas; 11/11/2010 a las 19:07
  #15 (permalink)  
Antiguo 11/11/2010, 22:18
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 122
Respuesta: ajax que solo funciona una vez

mmm yo ya le heche un ojo, y el problema es lo que te digo, no tiene nada que ver con que la clase este presente o no, sino que una vez que vuelves a meter "links" en el div, como el link de eliminar, etc. les tienes que volver a agregar el listener del evento de "click", o hacer lo que sea que hagas con los demas, creo que algo asi no?
Código Javascript:
Ver original
  1. $('.ajaxLink').ajaxLink({event:'click', beforSend:function() {alert('hola');}});

Pruebalo, yo lo acabo de probar y funciono bien con lo que te comento.
  #16 (permalink)  
Antiguo 11/11/2010, 22:26
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 122
Respuesta: ajax que solo funciona una vez

Si no entiendes lo que te quiero decir, sigue estos pasos:
1. entra a tu pagina en chrome http://frescosfam.com/beta/camisetas.asp
2. Ya que se haya cargado habre la consola de Javascript ctrl+shift+J
3. Haz click en suma (te aparecera el alert y un elemento en tu carrito)
4. Ahora en la consola escribe lo siguiente y da enter:
Código Javascript:
Ver original
  1. $('.ajaxLink').ajaxLink({event:'click', beforSend:function() {alert('hey');}});
5. Ahora has click en eliminar

Ahora si haces click, otra vez en suma, y haces despues click en el elemento de tu carrito, otra vez te va a llevar a otra página, por lo que te digo, como cada vez que agregas un elemento a tu carrito estás actualizando el div, cada vez en tonces tienes que agregar el evento de click de los elementos de ese div que actualizaste.

Espero haya sido lo suficientemente claro.

Suerte!
  #17 (permalink)  
Antiguo 11/11/2010, 22:31
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 122
Respuesta: ajax que solo funciona una vez

Te dejo una captura de lo de la consola, por si no estas acostumbrado

  #18 (permalink)  
Antiguo 12/11/2010, 04:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: ajax que solo funciona una vez

Vale, lo he entendido al 80% y eso ha sido suficiente!

Por fín lo he arreglado!

Muchas gracias!

Ademas te lo has currado, más de lo que esperaba, la verdad.

Lo prometido es deuda!
Si tienes Paypal pasame tu email por mensaje privado.


Etiquetas: ajax
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 07:44.