我定义了两个函数,它们基本上应该从下拉菜单中获取一个值,并根据选择的内容,使用 AJAX 抛出一个表格和表单。
这是我的两个功能:
function showParts(str)
{
if (str=="")
{
document.getElementById("partvalues").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("partvalues").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getparts.php?q="+str,true);
xmlhttp.send();
}
function showOrders(str)
{
if (str=="")
{
document.getElementById("otherparts").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("otherparts").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","formOrder.php?q="+str,true);
xmlhttp.send();
}
</script>
我测试了这两个功能,它们都可以正常工作。我有 2 个 PHP 页面,其中有一个查询来检索适当的值。但问题是,当我尝试将它们都作为 onchange 事件运行时,它们都不起作用。
echo "<select name = finishgood_list onchange = showParts(this.value); showOrders(this.value)>";
while ($row = mysql_fetch_array($result))
{
echo "<option value='" . $row['fg_id'] . "'>" . $row['fg_id'] . "</option>";
}
如果我尝试将函数嵌套在括号中,那么当我更改下拉菜单中的值时,它们都不起作用。我单独测试了它们,它们都工作正常,但我不能让它们同时工作。只有第一个函数正在执行,所以如果我改变 showOrder 周围的那些将起作用,但另一个不起作用。
这里有什么问题吗?如果我不能这样做,在从下拉菜单中选择值时,是否有另一种方法可以动态检索适当的值?