两个ajax调用两个不同的div

时间:2014-08-06 15:40:55

标签: javascript html ajax call

我要做的是进行两次ajax调用,并使每个结果显示在同一页面的两个不同div中。

这是我的Javascript代码:

function firstLoad(){
    firstDiv(datedisplay.value);//populating first div
    secondDiv(datedisplay.value);//populating second div
}

function loadXMLDoc(url,cfunc){
    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else{// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=cfunc;
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
}
function firstDiv(changed_date){
    var divided_date = changed_date.split("-");
    loadXMLDoc("getmonth.php?m="+divided_date[0]+"&y="+divided_date[1],function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById("timetableview").innerHTML=xmlhttp.responseText;
        }
    });
}
function secondDiv(changed_date){
    var divided_date = changed_date.split("-");
        loadXMLDoc("getmonthexp.php?m="+divided_date[0]+"&y="+divided_date[1],function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById("expensesview").innerHTML=xmlhttp.responseText;
        }
    });
}

响应内容是正确的,但现在发生的是: 第二个div正确填充。 第一个div保持空白,如果我不断刷新页面,最终第二个div的内容也会出现在第一个div中(很奇怪)。

希望你们能帮帮我。

2 个答案:

答案 0 :(得分:1)

xmlhttp是全局的,因为您不使用var关键字。这意味着您用于一个的onreadystatechange函数将覆盖另一个。

function loadXMLDoc(url, cfunc) {
    var xmlhttp;

答案 1 :(得分:0)

xmlhttp是全球性的,因为您不使用var关键字。这意味着您用于一个的onreadystatechange函数将覆盖另一个函数。

function loadXMLDoc(url, cfunc) {
    var xmlhttp;