¿Cómo puedo llamar a una función ajax dos veces (al cambiar)?

Esta es mi funcion ajax

var XMLHttpRequestObject = false;
if(window.XMLHttpRequest){
    XMLHttpRequestObject= new XMLHttpRequest();
} 
else if (window.ActiveXObject){
    XMLHttpRequestObject= new ActiveXObject("Microsoft.XMLHTTP");
}

function getData(dataSource, divID)
{
    document.getElementById(divID).innerHTML = "Loading...";
    if(XMLHttpRequestObject)
    {
        var obj=document.getElementById(divID);
        //alert(dataSource);
        var dataSource = dataSource+'&done=ok';
        XMLHttpRequestObject.open("GET", dataSource);
        XMLHttpRequestObject.onreadystatechange =function ()
        {
            if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
                obj.innerHTML = XMLHttpRequestObject.responseText; 
                document.getElementById(divID).innerHTML=XMLHttpRequestObject.responseText;
            } //else {alert ('error'+dataSource)}
        }

        XMLHttpRequestObject.send(null);

    }
}

y esta es otra llamada de función por encima de la función ajax dos veces:

function getCityResult(value){
    getData('aids/getRoutAjax.php?city='+value , 'rout');
    getData('aids/getOriginDestAjax.php?city='+value , 'OriginDest');
}

y he seleccionado el menú de la siguiente manera:

<select name="city_id" id="city_id" class="" style="width:300px;" onchange="return getCityResult(this.value);">
    <option value="">Select</option>
    <option value="13">ABQ</option>
    <option value="12">MUB</option>
    <option value="14">UDH</option>
</select>

<div id="rout"> 
    //Show some data
</div>
<div id="OriginDest">
    // Show some data
</div>

mi resultado es llamar al primero solo para mostrar datos en div con id [rout] ¿Cómo puedo llamar a ambos al mismo tiempo de esta manera?

Muchas Gracias

preguntado el 31 de julio de 12 a las 15:07

¿Consideró hacer uso de una biblioteca como jquery o dojo para hacer esto? Su código se verá mucho más limpio y más corto cuando use una biblioteca para realizar llamadas ajax. -

No estoy muy seguro de entender su pregunta ... está llamando a ambos al mismo tiempo ... ¿por qué no devuelve todos los datos en 1 llamada a una sola función de PHP?

Su código se ve bien. Abra un depurador de navegador y mire la pestaña NET. Vea si la segunda llamada AJAX se está disparando. -

¿Puede ser mejor llamar al segundo AJAX en caso de éxito del primero? ¿O necesitas hacer eso sincrónicamente? O hazlo en una solicitud ajax. -

Necesitas hacerlos sincrónicos -

1 Respuestas

Se deben llamar a ambos, no hay razón para que solo funcione para el primero si su código es correcto en getOriginDestAjax.php. Para estar seguro, intente llamando a ambos en la misma página:

getData('aids/getRoutAjax.php?city='+value , 'rout');
getData('aids/getRoutAjax.php?city='+value , 'OriginDest');

Respondido 31 Jul 12, 15:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.