通过一个 Onchange 调用两个函数()


Call two function() by one Onchange

im 将使用 Ajax 从数据库中获取一些数据。您能否让我知道通过使用"OnChange"更改指定下拉列表的值来触发两个函数() 的方法

注意:大多数时候系统只显示 showhistory() 函数输出

我现有的代码

............

......

<select name="po_no" onchange="showsize(this.value);showhistory(this.value);">

.......

 <script>
 function showhistory(str)
 {if (str=="")
   {
  document.getElementById("txtHistory").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("txtHistory").innerHTML=xmlhttp.responseText;
}
 }
xmlhttp.open("GET","gethistory2.php?s="+str,true);
xmlhttp.send();
 }
 </script>

 <script>
 function showsize(str)
 {
 if (str=="")
  {
   document.getElementById("sizeHint1").innerHTML="";
   return;
   } 
 if (window.XMLHttpRequest)
   {
   xmlhttp1=new XMLHttpRequest();
    }
 else
   {
   xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
   }
xmlhttp1.onreadystatechange=function()
   {
   if (xmlhttp1.readyState==4 && xmlhttp.status==200)
     {
    document.getElementById("sizeHint1").innerHTML=xmlhttp1.responseText;
    }
    }
  xmlhttp1.open("GET","getsize5.php?q="+str,true);
  xmlhttp1.send();
  }
 </script>

通过重新分配方法 showHistory(),您将覆盖 onChange 的第一个值 (showSize())。为了避免这种情况,请将其包装成一个函数,该函数调用这两个调用,如下所示:

函数 showAll(strValue) {

showAll(strValue);

showSize(strValue);

}

最后调用如下所示:

<select name="po_no" onchange="showAll(this.value);">

在第一个函数成功时调用第二个函数

<select name="po_no" onchange="showhistory(this.value);">

<script>
 function showhistory(str)
 {if (str=="")
   {
  document.getElementById("txtHistory").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("txtHistory").innerHTML=xmlhttp.responseText;
    showsize(str);
}
 }
xmlhttp.open("GET","gethistory2.php?s="+str,true);
xmlhttp.send();
 }
 function showsize(str)
 {
 if (str=="")
  {
   document.getElementById("sizeHint1").innerHTML="";
   return;
   } 
 if (window.XMLHttpRequest)
   {
   xmlhttp1=new XMLHttpRequest();
    }
 else
   {
   xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
   }
xmlhttp1.onreadystatechange=function()
   {
   if (xmlhttp1.readyState==4 && xmlhttp.status==200)
     {
    document.getElementById("sizeHint1").innerHTML=xmlhttp1.responseText;
    }
    }
  xmlhttp1.open("GET","getsize5.php?q="+str,true);
  xmlhttp1.send();
  }
 </script>