PHP+mysql实现全动态二级联动下拉列表 晴

jed , 2006-10-18 16:33 , 代码编程 , 评论(4) , 阅读(15918) , Via 本站原创 | |
二级联动下拉列表(select),都是从数据库中取值,其中第二级为可多选列表(multiple).若要实现二级也是下拉菜单,可以将multiple改了即可。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>全动态二级联动下拉列表</title>
</head>
<body>
<?
/***********************************************
** 功  能:PHP+mysql实现二级级联下拉框
** 数据库:数据库名(db_city)、数据表(t_province、t_city)
** 表t_province中字段:id(id编号)、provinceName(省份名)
** 表t_city中的字段:id(id编号)、provinceId(省份ID)、cityName(城市名)
***********************************************/

//****************** 连接选择数据库 ***************
$link = mysql_connect("localhost", "root", "123")
       or die("Could not connect : " . mysql_error());
mysql_select_db("db_city") or die("Could not select database");

//******************提取省份信息******************
$sqlSel = "select * from t_province order by id ";
$result = mysql_query($sqlSel) or die("Query failed : " . mysql_error());

$forum_data = array();
while( $row = mysql_fetch_array($result) )
{
       $forum_data[] = $row;
}
//print_r ($forum_data);
mysql_free_result($result);

//**************获取城市信息**************        
$sqlSel2 = "select * from t_city order by provinceId desc";

if( !($result2 = mysql_query($sqlSel2)) )
{
       die('Could not query t_city list');
}

$forum_data2 = array();
while( $row2 = mysql_fetch_array($result2) )
{
       $forum_data2[] = $row2;
}

mysql_free_result($result2);
?>

<!--************ JavaScript处理province--onChange *************-->
<script language = "JavaScript">
var onecount2;
subcat2 = new Array();
<?php
$num2 = count($forum_data2);
?>
onecount2=<?echo $num2;?>;
<?
for($j=0;$j<$num2;$j++)
{
?>
subcat2[<?echo $j;?>] = new Array("<?echo $forum_data2[$j]['id'];?>","<?echo $forum_data2[$j]['provinceId'];?>","<?echo $forum_data2[$j]['cityName'];?>");
<?}?>
function changelocation(id)
{
document.myform.city.length = 0;
var id=id;
var j;
document.myform.city.options[0] = new Option('==选择城市==','');
for (j=0;j < onecount2; j++)
{
 if (subcat2[j][1] == id)
  {
  document.myform.city.options[document.myform.city.length] = new Option(subcat2[j][2], subcat2[j][0]);
  }
}
}
</script>

<!--********************页面表单*************************-->
<form name="myform" method="post">
地址:<select name="bigClass" onChange="changelocation(document.myform.bigClass.options[document.myform.bigClass.selectedIndex].value)" size="1">
<option selected>请选择省份</option>
       
<?php
$num = count($forum_data);

for($i=0;$i<$num;$i++)
{
?>
<option value="<?echo $forum_data[$i]['id'];?>"><?echo $forum_data[$i]['provinceName'];?></option>
<?
}
?>
</select>
<select name="city" multiple>
<SELECT name=city size=1 id="city">
<option selected value="">==选择城市==</option>
</select>
</form>
</body>
</html>

caoone
2008-11-25 14:34
我的也是按你这种方法做的,之前在DW8时可以用,之后升级到DW8.2后第二级就不能显示了,为什么会这样的呢?cry
kuaile
2008-8-22 17:10
我做了 怎么不支持中文读出来的都是问号呀
hkingss
2008-5-7 15:19
grin不错 顶一下!
2007-4-26 18:41
我按你的这个做了,一级出来了,但二级出不来啊,怎么回事啊,急
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]