按照惯例,我发现在使用IE8时我的代码存在不兼容问题。我有3层AJAX下拉菜单系统,每个系统从MYSQL数据库中获取结果,并且在所有浏览器中都能正常工作。然而,第三个下拉然后触发最终的AJAX请求,它在所有浏览器和所有版本(我已经测试过)中工作正常,但IE8除外,它不会改变我的最终div的内容,只会出现错误。
我的AJAX函数由showResult(this.value)调用:
function showResult(str)
{
if (str=="")
{
document.getElementById("resultChange").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("resultChange").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","checker.php?z="+str,true);
xmlhttp.send();
}
来自checker.php的相关代码:
if(isset($_GET["z"])){
$z=$_GET["z"];
require_once('db connection here');
$sql3="mysql query here";
$result3 = mysql_query($sql3);
$count3 = mysql_num_rows($result3);
if($result3 > 0){
while($row3 = mysql_fetch_array($result3))
{
echo "Display this if it works"; }
}
else
{ echo 'Error';}
unset($_GET["z"]);
mysql_close();
}
而且,如果重要,这就是受影响的DIV:
<div id="resultChange" align="left" valign="top" style="margin: 0px;">Test
</div>
页面上的其他AJAX请求在它们的函数调用和checker.php文件中的相关部分都是相同的,除了它们的$ _GET赋值和div的id之外。哦,即使在IE8中它们都能正常工作!
我希望有人可以提供帮助,因为我找不到任何错误!
谢谢,乔