找了很多个级联的菜单,都不好用,自己弄个简单点的,共享下,希望有朋友用得着 <?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); ?> |
|