以下是我利用ajax+mysql+PHP写的二级菜单
现在问题是:在IE浏览器上正常 。在Firefox浏览器下就不正常。
寻求浏览器兼容解决方案。
http://202.96.174.53/ajax/select/select.html
select.html代码如下:
<HTML>
<HEAD>
<TITLE>二级菜单</TITLE>
<meta http-equiv="Content-Type" c>
<script language="JavaScript" type="text/javascript">
var xmlhttp;
try{
xmlhttp= new ActiveXObject('Msxm12.XMLHTTP');
}catch(e){
try{
xmlhttp= new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
try{
xmlhttp= new XMLHttpRequest();
}catch(e){}
}
}
function select_one(levelid){
//alert(levelid);
xmlhttp.open('get','one.php?id='+levelid,false);
xmlhttp.onreadystatechange=one_fc;
xmlhttp.send(null);
function one_fc(){
if(4==xmlhttp.readyState){
if(200==xmlhttp.status){
oneselect = new Array();
//alert(xmlhttp.responseText);
var onestr = xmlhttp.responseText;
oneselect = onestr.split(",");
}
}
}
//alert(oneselect.length);
for (var i=0;i<oneselect.length-1;i+=2)
{
with(document.form1.one){
options[options.length] = new Option(oneselect[i+1],oneselect);
}
}
}
function select_two (levelid1){
//alert(levelid);
if(document.form1.one.selectedIndex==0){
document.form1.two.length=1;
return;
}
xmlhttp.open('get','two.php?id='+levelid1,false);
xmlhttp.onreadystatechange=function(){
if(4==xmlhttp.readyState){
if(200==xmlhttp.status){
oneselect = new Array();
//alert(xmlhttp.responseText);
var onestr = xmlhttp.responseText;
oneselect = onestr.split(",");
}
}
}
xmlhttp.send(null);
document.form1.two.length=1;
for (var i=0;i<oneselect.length-1;i+=2)
{
with(document.form1.two){
options[options.length] = new Option(oneselect[i+1],oneselect);
}
}
}
</script>
</HEAD>
<BODY >
<FORM METHOD=POST ACTION="" NAME="form1">
<SELECT NAME="one" >
<option value="0">选择一级分类</option>
</SELECT>
<SELECT NAME="two" >
<option value="0">选择二级分类</option>
</SELECT>
</FORM>
</FORM>
</BODY>
</HTML>
-------------------------------
one.php代码如下:
<?php
$links = mysql_connect('localhost','root','123456') or die(mysql_error($links));
mysql_select_db("ajax");
header("Content-type:text/html;charset=GB2312");
$levelid = intval($_GET['id']);
//$levelid = 0;
$sql = "select * from category where level = $levelid";
//echo $sql;
$query = mysql_query($sql);
//echo $levelid;
while($row = mysql_fetch_array($query)){
$onestring .= $row[0].','.$row[1].',';
//echo $row[1];
}
echo $onestring.'0';
mysql_close($links);
?>
--------------------------------
two.php代码如下
<?php
$links = mysql_connect('localhost','root','123456') or die(mysql_error($links));
mysql_select_db("ajax");
header("Content-type:text/html;charset=GB2312");
$levelid = intval($_GET['id']);
//$levelid = 1;
$sql = "select * from category where parentid = $levelid";
//echo $sql;
$query = mysql_query($sql);
//echo $levelid;
while($row = mysql_fetch_array($query)){
$onestring .= $row[0].','.$row[1].',';
//echo $row[1];
}
echo $onestring.'0';
mysql_close($links);
?>