这几天一直在和一些代码搏斗,一直没有进展。我需要帮助。这是我正在尝试做的事情:
- 手动填充两个下拉列表中的第一个
- 获取第一个的选定值,用它来查询数据库,用查询结果填充第二个下拉列表。
- 使用按钮触发另一个功能以生成 PDF。
我的网站上有这段代码,并且正在工作。问题是它只适用于 FF 和 Chrome。我无法在 IE 中填充下拉列表。为了测试,我已经将代码剥离到几乎没有,只是为了看看 IE 是否会填充第二个下拉列表,但它不会。下面是测试页面的代码:
测试.htm:
<html><head>
<script type="text/javascript">
function showCMB2(str)
{
if (str=="")
{
document.getElementById("cmb2").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("cmb2").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","test.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<select name="cmb1" id="cmb1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</form>
<br />
<input type="button" value="Retrieve Data"
OnClick="showCMB2(cmb1.options[cmb1.selectedIndex].value)">
<br><br><br>
<span name="cmb2" id="cmb2"></span>
</body>
</html>
测试.php:
<?php
echo '<select name="cmb2" id="cmb2">';
echo '<option value="cmb2">This is test</option>';
echo '</select>';
?>
就像我说的,这在 FF 和 Chrome 中效果很好,但在 IE 中不行。id 为 cmb2 的 test.htm 中的跨度我已经尝试过制作它,甚至是 ,行为没有变化。任何人都可以提供任何见解吗?这看起来很简单。