jQuery+PHP+MySQL二级联动下拉菜单实例讲解
作者:bea
二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用jQuery+PHP+MySQL来实现大小分类二级下拉联动效果。 实现效果:当选择大类时,小类下拉框里的选项内容也随着改变。 实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MySQl数据库,得到相应的小类,并返回JSON数据给前端处理。 XHTML 首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数
二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用jQuery+PHP+MySQL来实现大小分类二级下拉联动效果。 实现效果:当选择大类时,小类下拉框里的选项内容也随着改变。
实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MySQl数据库,得到相应的小类,并返回JSON数据给前端处理。 XHTML 首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数据库读取。
<label>大类:</label>
<select name="bigname" id="bigname">
<option value="1">前端技术</option>
<option value="2">程序开发</option>
<option value="3">数据库</option>
</select>
<label>小类:</label>
<select name="smallname" id="smallname">
<option value="1">flash</option>
<option value="2">ps</option>
</select>
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 = "<option value='"+array['id']+"'>"+array['title']+"</option>";
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三者结合如何实现的二级联动下拉菜单,程序还有一些不足之处,需要继续完善,希望本文可以给大家一点启发。
有用 | 无用
实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MySQl数据库,得到相应的小类,并返回JSON数据给前端处理。 XHTML 首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数据库读取。
<label>大类:</label>
<select name="bigname" id="bigname">
<option value="1">前端技术</option>
<option value="2">程序开发</option>
<option value="3">数据库</option>
</select>
<label>小类:</label>
<select name="smallname" id="smallname">
<option value="1">flash</option>
<option value="2">ps</option>
</select>
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 = "<option value='"+array['id']+"'>"+array['title']+"</option>";
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三者结合如何实现的二级联动下拉菜单,程序还有一些不足之处,需要继续完善,希望本文可以给大家一点启发。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JS模拟酷狗音乐播放器收缩折叠关闭效果代码
- 如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
- JS实现网页右侧带动画效果的伸缩窗口代码
- JavaScript操作URL的相关内容集锦
- js实现完美兼容各大浏览器的人民币大小写相互转换
- Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
- Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
- 自己动手写的jquery分页控件(非常简单实用)
- Jquery日历插件制作简单日历
- 使用CoffeeScrip优美方式编写javascript代码
- 开启Javascript中apply、call、bind的用法之旅模式
- JavaScript多并发问题如何处理
- JS实现双击屏幕滚动效果代码
- 基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
- jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
- jquery实现的动态回到顶部特效代码
- JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
- jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
- 使用Chart.js图表库制作漂亮的响应式表单