Вызов 2 функций ajax для события onchange - PullRequest
1 голос
/ 02 августа 2011

Я хочу, чтобы 3 ajax-функции вызывались одновременно при событии onchange раскрывающегося списка.

Я пытался вызвать 2-ю функцию внутри if (xmlhttp1.readyState==4 && xmlhttp1.status==200) 1-й функции и 3-ю функцию внутри if (xmlhttp1.readyState==4 && xmlhttp1.status==200)2-я функция.

Но вызывается только 1-я функция, даже вторая функция не вызывается.Есть ли другие способы добиться этого?

Ниже приведены функции:

function list1(ob){

    var id= ob;
    var xmlhttp1;

    if (window.XMLHttpRequest){//for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp1=new XMLHttpRequest();
    }else{//for IE6, IE5
        xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp1.onreadystatechange = function(){
        if (xmlhttp1.readyState==4 && xmlhttp1.status==200){
            alert("ajax1");
            list2(id);
        }
    }

    xmlhttp1.open("POST","/ajax/listSites.php",true);
    xmlhttp1.setRequestHeader("Content-type",
                              "application/x-www-form-urlencoded");
    xmlhttp1.send("id="+id);    
}


function list2(obb){

    var idd=obb;
    var xmlhttp;

    if (window.XMLHttpRequest){// for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }else{// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            alert("ajax2");
            list3(idd);
        }
    }

    xmlhttp.open("POST","/ajax/access_points_do_actions.php",true);
    xmlhttp.setRequestHeader("Content-type",
                             "application/x-www-form-urlencoded");
    xmlhttp.
        send("sel_system_id="+idd+
             "&action="+'LIST_SLAVE_FOR_ACCESS_POINT'); 

      }

// only alert ajax1 is displayed

1 Ответ

2 голосов
/ 02 августа 2011

Вы можете просто соединять асинхронные вызовы следующим образом:

onchange="Function1(); Function2();"

Обновление:

Ваш код:

<select id="se" onchange="javascript:list1(this.value); //this is current code

должно быть что-то вроде:

<select id="se" onchange="Javascript: list1(this); list1(this);">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...