找了很多个级联的菜单,都不好用,自己弄个简单点的,共享下,希望有朋友用得着
<?php
//建立表country,有三个字段Id,parentId,area.
$pro = $_POST['pre'];
$cit = $_POST['city'];
echo $pro;
echo $cit;
$link = mysql_connect("localhost","root","wanwei");
if (!$link)
die("链接服务器失败.".mysql_error());
$db = mysql_select_db("aiiee",$link);
if(!$db)
die("选择数据库失败.".mysql_error());
$str = "select * from country where parentId != 0";
mysql_query("set names 'gbk'");
$result = mysql_query($str,$link);
$rownum = mysql_num_rows($result);
$row = mysql_fetch_array($result);
?>
<script language="JavaScript">
var _option = new Array(); //建立一个一维数组 _option.
<?php
for($i=0;$i<$rownum;$i++){
echo "_option[".$i."] = new Array('".$row["area"]."',".$row["id"].",".$row["parentId"].")\n"; //用数组 _option 的元素建立二维数组,第一列是city的text,第二列是city自身Id,第三列是city的父级Id.
$row = mysql_fetch_array($result);
}
?>
function ChangeSelect(SelfId){
document.form_category.city.length = 0; //初始化市级下拉列表长度为零.
document.form_category.city.options[0] = new Option('==请选择市==','0'); //把市级下拉列表的第一个option设为0.
for(i=0;i < _option.length;i++){ //在二维数组 _option 内循环,当第i行,第3列的值等于SelfId时,就用第i行,第1列的来建立city的option.
if(_option[i][2] == SelfId){
document.form_category.city.options[document.form_category.city.length] = new Option(_option[i][0],_option[i][1]);
//建立city的option.
}
}
}
</script>
<form name="form_category" id="form_category" method="post" action="test.php">
<select name="pre" id="pre" onChange="ChangeSelect(this.value);">
<option>==请选省/市==</option>
<?php
$rs_result = mysql_query("select * from country where parentId=0",$link);
$row_num = mysql_num_rows($rs_result);
$rs_row = mysql_fetch_array($rs_result);
for($m=1;$m<=$row_num;$m++){
?>
<option value="<?=$rs_row["id"]?>"><?=$rs_row["area"]?></option>
<?php
$rs_row = mysql_fetch_array($rs_result);
}
?>
</select>
<select name="city" id="city">
<option>==请选择市==</option>
</select>
<input type="submit">
</form>
<?php
mysql_close($link);
?>