elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Esperar a respuesta de AJAX
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Esperar a respuesta de AJAX  (Leído 6,068 veces)
sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Esperar a respuesta de AJAX
« en: 23 Agosto 2012, 13:33 pm »

Veamos.
Tengo una función en javascript (con jQuery). Hago una llamada a AJAX. Esto me devuelve un valor.
En la respuesta primero llamo a otra función, que me hace otra llamada a AJAX y muestra una tabla (o mejor dicho la actualiza), y después de esa función hago mas cosas.

El caso es que al ser asíncrono, no espera a la respuesta de AJAX de la segunda función para seguir ejecutando la primera.
Y el código que tiene que ejecutar después no lo puedo meter en la respuesta de la segunda...

¿Sabéis como lo puedo hacer? Muchas gracias.


En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Esperar a respuesta de AJAX
« Respuesta #1 en: 23 Agosto 2012, 15:52 pm »

No pones ninguna función de las que usas así que no puedo ponerte un ejemplo concreto, pero por ejemplo si quieres que se ejecute una funcionCallback() después de ejecutar una función cualquiera se hace así:

Código
  1. miFuncion ("parametros de la funcion", function(){
  2.   funcionCallback();
  3. });


En línea

sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Re: Esperar a respuesta de AJAX
« Respuesta #2 en: 23 Agosto 2012, 16:25 pm »

Estás son las dos funciones:
Código:
//Funcion 1:
$('.orderby').click(function () {
        var tabla = $(this).attr('rel');
        $.ajax({
            url:base + 'ajax.php?ac=cambiarDireccion',
            type:'post',
            data:{campoorden:$(this).attr('id')},
            success:function (resp) {
                getTabla(tabla);
                var src = base + 'img/' + resp + '.png';
                $('#imgdireccionorden').attr('src',src);
            }
        });
    });

Funcion 2
function getTabla(tabla) {
    $.ajax({
        url:base + 'ajax.php?ac=getTabla' + tabla,
        success:function (resp) {
            $('#tabla'+tabla.toLowerCase()).html(resp);
            init();
        }
    });
}
Lo primero es un evento pero vamos...
El caso es, cuando la función 1 recibe la respuesta, llama a la función 2 (getTabla()) y luego hace las dos líneas siguientes dentro del success, esa es mi idea. Pero como el llama a la función y mientras hace la otra llamada a AJAX sigue ejecutando, $('#imgdireccionorden') todavía no existe, o bueno, si que existe, pero al hacerse la otra función se sustituye.
No sé si me explico...
En línea

sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Re: Esperar a respuesta de AJAX
« Respuesta #3 en: 23 Agosto 2012, 17:28 pm »

Vale, ya lo he conseguido. Muchas gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Tutorial] - Login con ajax . Mysql || Php con clases || Ajax « 1 2 »
PHP
Hadess_inf 15 27,036 Último mensaje 9 Diciembre 2010, 02:44 am
por delorian15
Esperar por Accion?
Programación Visual Basic
DarkMatrix 2 2,356 Último mensaje 19 Agosto 2009, 21:04 pm
por DarkMatrix
Validar formulario AJAX-PHP e imprimir respuesta
Desarrollo Web
ZharkD 4 6,345 Último mensaje 19 Julio 2010, 06:58 am
por ZharkD
Plugin con Jquery retornando respuesta AJAX
Desarrollo Web
Littl3 9 11,608 Último mensaje 12 Diciembre 2012, 12:29 pm
por dengue8830
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines