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>