关于Ajax的问题

时间:2010-05-17 06:29:42

标签: ajax

我正在学习Ajax。下面的代码基本上接收来自PHP的echo,然后将它放在元素id games中。

我的问题是,如果我想让Ajax向3个不同的PHP脚本发送3个不同的HTTP请求,并且如果我想从每个脚本中检索数据然后将它放在3个不同的元素id中,那么我将为此制作3个副本功能相同?我认为应该有一种更有效的方式。

function showHint(str) {
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
    } else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("games").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","hw9.database.php?name="+str,true);
    xmlhttp.send();
}

2 个答案:

答案 0 :(得分:6)

没有必要这样做。你只需要参数化函数:

function showHint(elementid,url,str) {

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

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById(elementid).innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET",url+str,true);
    xmlhttp.send();
}

答案 1 :(得分:1)

有。使用jQueryPrototype或任何其他JavaScript框架。所有这些都具有内置的Ajax功能,使您想要完成的事情变得更加容易。

示例jQuery Ajax请求:

$('#games').load('hw9.database.php?name=' + str );