HTML选择onchange多个事件不起作用

时间:2012-11-04 02:40:44

标签: html ajax onchange

我定义了两个基本上应该从下拉菜单中获取值的函数,并根据所选内容,使用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将工作但不是另一个。

这里有什么问题吗?如果我不能这样做,是否有另一种方法可以在从下拉菜单中选择值时动态检索适当的值?

1 个答案:

答案 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);' >";

即用引号包装属性。

相关问题