我定义了两个基本上应该从下拉菜单中获取值的函数,并根据所选内容,使用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将工作但不是另一个。
这里有什么问题吗?如果我不能这样做,是否有另一种方法可以在从下拉菜单中选择值时动态检索适当的值?
答案 0 :(得分:0)
猜测,最明显的变化来自
echo "<select name = finishgood_list onchange = showParts(this.value); showOrders(this.value)>";
到
echo "<select name = 'finishgood_list' onchange = 'showParts(this.value); showOrders(this.value);' >";
即用引号包装属性。