php和javascript实现二级联动下拉菜单
2013-04-13 23:35
806 查看
数据库test
保存省的数据表province:id,p_name;
保存市的数据表city:id,p_id(对应的省的名字),c_name;
===============================分割线=====================
程序原理:
首先用php语句,把省份的信息都取出来放到一个数组$forum_data[]中,然后把市的信息放到另外一个数组$forum_data2[]中。
因为市的详细信息需要在js中调用,所以在js中写一个二维数组subcat2用来保存所有的市的信息(包括id以及对应的省的id还有对市的名字)。然后在js中定义一个函数 changelocation,在省的那个select中定义一个事件onChange="changelocation(document.myform.bigClass.options[document.myform.bigClass.selectedIndex].value)",把选中的省的id传到函数changelocation中,然后函数根据省的id与二维数组subcat2中的p_id对照,然后生成对应的城市的option。
=================================分割线===================
代码如下:
保存省的数据表province:id,p_name;
保存市的数据表city:id,p_id(对应的省的名字),c_name;
===============================分割线=====================
程序原理:
首先用php语句,把省份的信息都取出来放到一个数组$forum_data[]中,然后把市的信息放到另外一个数组$forum_data2[]中。
因为市的详细信息需要在js中调用,所以在js中写一个二维数组subcat2用来保存所有的市的信息(包括id以及对应的省的id还有对市的名字)。然后在js中定义一个函数 changelocation,在省的那个select中定义一个事件onChange="changelocation(document.myform.bigClass.options[document.myform.bigClass.selectedIndex].value)",把选中的省的id传到函数changelocation中,然后函数根据省的id与二维数组subcat2中的p_id对照,然后生成对应的城市的option。
=================================分割线===================
代码如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>全动态二级联动下拉列表</title> </head> <body> <? //连接数据库 $link = mysql_connect("localhost", "root", "") or die("Could not connect : " . mysql_error()); mysql_select_db("test") or die("Could not select database"); mysql_query("SET NAMES GBK"); //获取所有的省份的信息 $sqlSel = "select * from province order by id "; $result = mysql_query($sqlSel) or die("Query failed : " . mysql_error()); $forum_data = array(); while( ($row = mysql_fetch_array($result))!=false ) { $forum_data[] = $row; } mysql_free_result($result); //获取所有的市的信息 $sqlSel2 = "select * from city order by p_id desc"; if( !($result2 = mysql_query($sqlSel2)) ) { die ( 'Could not query t_city list' ); } $forum_data2 = array(); while( ($row2 = mysql_fetch_array($result2))!=false ) { $forum_data2[] = $row2; } mysql_free_result($result2); ?> <!-- js实现获取 省份的信息进而生成所有的市--> <script language="JavaScript"> var onecount2; subcat2 = new Array(); <?php $num2 = count($forum_data2); ?> onecount2=<?php echo $num2;?>; <? for($j=0;$j<$num2;$j++) { ?> //用subcat2保存所有的市的信息 subcat2[<? echo $j;?>] = new Array("<? echo $forum_data2[$j]['id'];?>","<? echo $forum_data2[$j]['p_id'];?>","<? echo $forum_data2[$j]['c_name'];?>"); <? } ?> //获取省份的id然后进而生成对应的市的下拉框 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]['p_name'];?></option> <? } ?> </select> <SELECT name=city size=1 id="city"> <option selected value="">==选择城市==</option> </select> </form> </body> </html>
相关文章推荐
- PHP-二级联动下拉菜单之Form提交法实现
- jQuery+PHP+MySQL实现二级联动下拉菜单
- PHP&JavaScript二级联动菜单的实现方法
- PHP和Ajax实现二级联动下拉菜单(代码、详细注释)
- php+mysql+javascript实现二级联动下拉框
- jQuery+PHP+MySQL实现二级联动下拉菜单
- jQuery+PHP+MySQL实现二级联动下拉菜单
- JavaScript结合PHP实现网页制作中双下拉菜单的动态实现
- javascript实现二级省级联动
- 用JavaScript实现二级联动
- jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
- iOS开发之"省市"二级联动的数据组织(PHP版)以及PickerView的实现与封装
- jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
- jsp+javascript实现动态下拉二级联动(select+option)
- jquery + php实现二级联动
- 基于Javascript实现二级联动菜单效果
- javascript实现二级菜单联动源码---人人看的懂!
- jQuery+php+mysql,轻松实现ajax无刷新省市二级联动
- 基于javascript实现全国省市二级联动下拉选择菜单
- JavaScript实际应用:简单二级联动菜单实现