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

时间:2015-10-28 05:45:25

标签: javascript ajax

我想使用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 个答案:

答案 0 :(得分:0)

使用它来代替你的代码(你的代码非常难看,嵌套很奇怪):

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);
  }
}

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

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

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

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