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

como utilizo un ajax despues de otro ajax

Estas en el tema de como utilizo un ajax despues de otro ajax en el foro de Frameworks JS en Foros del Web. hola muchachos bueno pues mi pregunta es la siguiente: cargo de afura de una pagina una ventana y en esa ventana hay un textfield con ...
  #1 (permalink)  
Antiguo 09/01/2013, 19:20
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 12 años
Puntos: 2
como utilizo un ajax despues de otro ajax

hola muchachos bueno pues mi pregunta es la siguiente:
cargo de afura de una pagina una ventana y en esa ventana hay un textfield con un boton submit (sin form) el problema es que no me ejecuta nada. Si aparece la venta bn pero al darle click al boton no hace nada el codigo es el siguiente.

Código Javascript:
Ver original
  1. $('#answer span').click(function(){
  2.                  var clas=$(this).attr('class');
  3.                  var codHis='codHis='+clas;
  4.                  $.ajax({
  5.                      url: '../BusHistMensa/chat.php',
  6.                     data: codHis,
  7.                     type: 'POST',
  8.                     dataType: 'json',
  9.                     success: function(respuesta){
  10.                          $('.'+clas+'ss').toggle().html(respuesta.resultado,function(){
  11.                             $('.submit').click(function(){                                
  12.                                     var palabras= $('#txt_answer-1').val();
  13.                                     var codigoH=$('#hist-1').val();
  14.                                     var datos_formulario = {'txt_answer':palabras,'txt_historiaCod':codigoH};
  15.                                     alert(datos_formulario);
  16. //                                    $.ajax({
  17. //                                        url: '../BusHistMensa/chat.php',
  18. //                                        data: datos_formulario,
  19. //                                        type: 'POST',
  20. //                                        success: function(abc){
  21. //                                            alert(abc);
  22. ////                                                $('.'+clas+'ss').fadeOut(400);
  23. //                                        }
  24. //                                    });
  25.                                 });
  26.                         });
  27.                     }
  28.                  });            
  29.             });

lo que esta dentro de los comentarios es la parte que funciona si el $('.submit').click() funciona pero jumm no aparece nada y si lo meto con formulario y en ves .click() poner .submit(); pero al momento de darle click lo que hace es que lo envia de forma GET y pues asi no quiero si alguen sabe como hacer esto de dos ajax seguidos le agradeceria
  #2 (permalink)  
Antiguo 10/01/2013, 11:19
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: como utilizo un ajax despues de otro ajax

Hola, Si mal no entiendo. Estas cargando un contenido de manera dinámica con jquery, y luego quieres capturar el evento click de uno de los elementos que cargaste dinamicamente. Si es eso, debes utilizar Live() para capturar ese evento, ya que jquery de forma nativa no reconoce los nuevos elementos añadidos al dom.

http://api.jquery.com/live/

Saludos.
__________________
http://chicho.ninja yiaaaa
  #3 (permalink)  
Antiguo 11/01/2013, 06:13
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago de Surco, Lima - Perú
Mensajes: 266
Antigüedad: 12 años, 10 meses
Puntos: 57
Información Respuesta: como utilizo un ajax despues de otro ajax

Hola chichote, que tal.

El método .live() dejé de utilizarlo rotundamente cuando leí el siguiente artículo: Porqué no debemos usar nunca jQuery Live.

Lo mejor es utilizar el método .on() para asociar eventos. Se puede leer sobre dicho método y su contrario/complementario .off() para eliminar eventos en este artículo.

Basándonos en dicha información podemos recomendarle el uso de estos métodos a sonickseven.

Hace unos meses respondí a un tema, que requería de una solución similar.

sonickseven puedes revisar este mensaje en el cual incluí un ejemplo para entender mejor como usar dichos métodos sin tomar la mala decisión de usar el método obsoleto.

Por favor coméntanos tus dudas.
  #4 (permalink)  
Antiguo 11/01/2013, 06:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: como utilizo un ajax despues de otro ajax

La línea 10 está mal. html() no acepta un segundo parámetro, por lo que esa función nunca llega a ejecutarse:
http://api.jquery.com/html/
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 11/01/2013, 06:37
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: como utilizo un ajax despues de otro ajax

Excelente, gracias por compartir ;)

Saludos.

Cita:
Iniciado por gebremswar Ver Mensaje
Hola chichote, que tal.

El método .live() dejé de utilizarlo rotundamente cuando leí el siguiente artículo: Porqué no debemos usar nunca jQuery Live.

Lo mejor es utilizar el método .on() para asociar eventos. Se puede leer sobre dicho método y su contrario/complementario .off() para eliminar eventos en este artículo.

Basándonos en dicha información podemos recomendarle el uso de estos métodos a sonickseven.

Hace unos meses respondí a un tema, que requería de una solución similar.

sonickseven puedes revisar este mensaje en el cual incluí un ejemplo para entender mejor como usar dichos métodos sin tomar la mala decisión de usar el método obsoleto.

Por favor coméntanos tus dudas.
__________________
http://chicho.ninja yiaaaa
  #6 (permalink)  
Antiguo 11/01/2013, 19:53
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 12 años
Puntos: 2
Respuesta: como utilizo un ajax despues de otro ajax

hola muchachos pues bueno de antemano les digo gracias por las respuestas pero inevestigue e investigue hasta que por fin encontre la solucion bn practica y que me evita como10 lineas de codigo y es con la funcion .load(); mas facil ac ontinuacion les mostrare la solucion :D
Código Javascript:
Ver original
  1. var clas=$(this).attr('class');
  2.  var codHis='codHis='+clas;
  3.  $('.'+clas+'ss').toggle().load('../BusHistMensa/chat.php', {codHis:clas}, function(){//con esta funcion si puedo trabajar con el
  4.                                                                                       //resultado (call back) en cambio con .ajax({}) no o eso creo
  5.                                                                                       //falta averiguar mas sobre el on(); y el off();
  6.             $('.submit').click(function(){                                
  7.                     var palabras= $('#txt_answer-1').val();
  8.                     var codigoH=$('#hist-1').val();
  9.                     var datos_formulario = {'txt_answer':palabras,'txt_historiaCod':codigoH};
  10.                     alert(datos_formulario);
  11.                                     $.ajax({
  12.                                         url: '../BusHistMensa/chat.php',
  13.                                         data: datos_formulario,
  14.                                         type: 'POST',
  15.                                         success: function(abc){
  16.                                             alert(abc);
  17.                                                 $('.'+clas+'ss').fadeOut(400);
  18.                                         }
  19.                                     });
  20.             });            
  21. });
espero hayan entendido ya es muy buena la solucion que he encontrado :D

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 13:10.