这个ajax代码有什么作用?

时间:2014-05-12 09:31:26

标签: javascript ajax

所以我有点卡住了 有人可以在我的工作中看看这个功能:

function showUser(str) {
    if (str=="") {
        document.getElementById("txtHint").innerHTML="";
        return;
    } 
    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=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
          document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","venue2.php?hotel="+str,true);
    xmlhttp.send();
}

有人可以解释一下这个功能实际上有什么用吗? 我也可以调整它以使其以某种形式工作吗?

4 个答案:

答案 0 :(得分:3)

function showUser(str) {
    //in this part if str is null then clear the element "txtHint":
    //============================================================
    if (str=="") {
        document.getElementById("txtHint").innerHTML="";
        return;
     } 

     //In this part create an object xmlhttp responsible on transactions :
     //==================================================================
     if (window.XMLHttpRequest) {
          // code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
     } else { // code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     }

     //define the function "onreadystatechange", will be called when receving data:
     //===========================================================================
     xmlhttp.onreadystatechange=function() {
         // verify the state of data received , if we receive all data and all is OK
         //=========================================================================
         if (xmlhttp.readyState==4 && xmlhttp.status==200) {
             //trans the data received to txtHint:
             document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
         }
     }

  //now, we call the the Url with the param hotel in GET:
  //====================================================
  xmlhttp.open("GET","venue2.php?hotel="+str,true);
  xmlhttp.send();
}

答案 1 :(得分:1)

此函数是一个AJAX(=异步Javascript和XML)请求,不使用任何流行的框架,如dojo或jquery。 AJAX用于创建请求而无需重新加载页面。例如: 当您打开stackoverflow时,您将在几秒钟后自动登录,而无需重新加载页面。 基本上它会检查给定参数str是否为空。如果是,请使用ID' txtHint'清除元素的值。如果它不为空,则获得元素的值' txtHint'并将其放入请求中。然后它添加'hotel=str'.

答案 2 :(得分:0)

它对文件venue2.php进行Ajax调用,将参数hotel width的值传递给str。   如果调用正常,它会将响应Text放在带有id = txtHint

的html标记内

答案 3 :(得分:0)

1)函数获取一个名为str的参数。

2)它检查str是否为空字符串。如果那个为空则然后破坏代码执行(返回)。

3)如果str不为空,则创建XMLHttpRequest object并使用参数hotel = str从venue2.php发送请求。

4)当请求完成后,将响应加载到txtHint div。