二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用jquery+php+mysql来实现大小分类二级下拉联动效果。
实现效果:当选择大类时,小类下拉框里的选项内容也随着改变。
实现原理:根据大类的值,通过jquery把值传给后台php处理,php通过查询mysql数据库,得到相应的小类,并返回json数据给前端处理。
xhtml
首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数据库读取。
大类: 前端技术 程序开发 数据库 小类: flash ps
jquery
先写一个函数,获取大类选择框的值,并通过$.getjson方法传递给后台server.php,读取后台返回的json数据,并通过$.each方法遍历json数据,将对应的值写入一个option字符串,最后将option追加到小类里。
function getselectval(){ $.getjson(server.php,{bigname:$(#bigname).val()},function(json){ var smallname = $(#smallname); $(option,smallname).remove(); //清空原有的选项 $.each(json,function(index,array){ var option = +array['title']+; smallname.append(option); }); }); }
注意,在遍历json数据追加之前一定要先将小类里的原有的项清空。清空选项的方法有两种,一种是上文代码中提到,还有一种更简单直接的方法:
smallname.();
然后,在页面载入后执行调用函数:
$(function(){ getselectval(); $(#bigname).change(function(){ getselectval(); }); });
在页面初始的时候,下拉框是要设置选项的,所以在初始的时候就要调用getselectval(),而当大类选项改变时,也调用了getselectval()。
php
include_once(connect.php); //链接数据库 $bigid = $_get[bigname]; if(isset($bigid)){ $q=mysql_query(select * from catalog where cid = $bigid); while($row=mysql_fetch_array($q)){ $select[] = array(id=>$row[id],title=>$row[title]); } echo json_encode($select); }
根据jquery传递过来的大类的value值,构造sql语句查询分类表,最终输出json数据。本站在未做特别说明的情况下所使用的php与mysql连接,和查询语句等均使用原始语句方法如mysql_query等,目的就是为了让读者能够直观的知晓数据的传输查询。
最后附上mysql表结构:
create table `catalog` ( `id` mediumint(6) not null auto_increment, `cid` mediumint(6) not null default '0', `title` varchar(50) not null, primary key (`id`) ) engine=myisam default charset=utf8;
以上就是介绍了jquery+php+mysql三者结合如何实现的二级联动下拉菜单,程序还有一些不足之处,需要继续完善,希望本文可以给大家一点启发。