我想使用ajax将值传递给php中的多个url,并在多个html元素id中返回响应

时间:2022-10-09 11:47:29

i want to send a value to multiple url's in php using ajax.. in the example below, i want to send the request to getuser.php and getuser2.php and want to return the response to element id TXTHINT and TXTHINT2 .. the below code does not work .. where am i going wrong.?

我想使用ajax在php中向多个url发送一个值..在下面的示例中,我想将请求发送到getuser.php和getuser2.php,并希望将响应返回到元素id TXTHINT和TXTHINT2 ..以下代码不起作用..我哪里错了。?

  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","getuser.php?city_main="+str,true);
      xmlhttp.send();



    function showUser2(str) {
      if (str=="") {
        document.getElementById("txtHint2").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("txtHint2").innerHTML=xmlhttp.responseText;
        }
      }
      xmlhttp.open("GET","getuser2.php?city_main="+str,true);
      xmlhttp.send();
    }  


    }

1 个解决方案

#1


0  

Use this instead of you code (yours is really ugly and the nesting is weird):

使用它代替你的代码(你的代码真的很丑,嵌套很奇怪):

function fillHint(hintID, url, str) {
  if (str=="") {
    document.getElementById(hintID).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(hintID).innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET",url+".php?city_main="+str,true);
  xmlhttp.send();
}

function showUser(str) {
  fillHint("txtHint", "getuser", str);
}

function showUser2(str) {
  fillHint("txtHint2", "getuser2", str);
}

function someMasterCallFn() {
  if (...) { // if first should be called
    showUser(theString);
  } else if (...) { // if second should be called
    showUser2(theString);
  }
}

And if you want to call both functions you have two possibilities:

如果你想调用这两个函数,你有两种可能性:

function showUser(str) {
  fillHint("txtHint", "getuser", str);
  showUser2(str);
}

function showUser2(str) {
  fillHint("txtHint2", "getuser2", str);
}

or

function someMasterCallFn() {
  showUser(theString);
  showUser2(theString);
}

#1


0  

Use this instead of you code (yours is really ugly and the nesting is weird):

使用它代替你的代码(你的代码真的很丑,嵌套很奇怪):

function fillHint(hintID, url, str) {
  if (str=="") {
    document.getElementById(hintID).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(hintID).innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET",url+".php?city_main="+str,true);
  xmlhttp.send();
}

function showUser(str) {
  fillHint("txtHint", "getuser", str);
}

function showUser2(str) {
  fillHint("txtHint2", "getuser2", str);
}

function someMasterCallFn() {
  if (...) { // if first should be called
    showUser(theString);
  } else if (...) { // if second should be called
    showUser2(theString);
  }
}

And if you want to call both functions you have two possibilities:

如果你想调用这两个函数,你有两种可能性:

function showUser(str) {
  fillHint("txtHint", "getuser", str);
  showUser2(str);
}

function showUser2(str) {
  fillHint("txtHint2", "getuser2", str);
}

or

function someMasterCallFn() {
  showUser(theString);
  showUser2(theString);
}