jQuery+PHP+MySQL实现二级联动下拉菜单
2010-12-06 12:43
1301 查看
二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用jQuery+PHP+MySQL来实现大小分类二级下拉联动效果。
先看下效果
大类:
前端技术
程序开发
数据库
小类:
$(function(){getSelectVal();$("#bigname").change(function(){getSelectVal();});});
function getSelectVal(){
$.getJSON("demo/json-select/server.php",{bigname:$("#bigname").val()},function(json){var smallname = $("#smallname");smallname.empty();$.each(json,function(index,array){var option = ""+array['title']+"";smallname.append(option);});});}
实现的效果就是当选择大类时,小类下拉框里的选项内容也随着改变。实现原理:根据大类的值,通过jQuery把值传给后台PHP处理,PHP通过查询MySQl数据库,得到相应的小类,并返回JSON数据给前端处理。
XHTML
首先我们要建立两个下拉选择框,第一个是大类,第二个是小类。大类的值可以是预先写好,也可以是从数据库读取。
jQuery
先写一个函数,获取大类选择框的值,并通过$.getJSON方法传递给后台server.php,读取后台返回的JSON数据,并通过$.each方法遍历JSON数据,将对应的值写入一个option字符串,最后将option追加到小类里。
注意,在遍历JSON数据追加之前一定要先将小类里的原有的项清空。清空选项的方法有两种,一种是上文代码中提到,还有一种更简单直接的方法:
然后,在页面载入后执行调用函数:
在页面初始的时候,下拉框是要设置选项的,所以在初始的时候就要调用getSelectVal(),而当大类选项改变时,也调用了getSelectVal()。
PHP
根据jQuery传递过来的大类的value值,构造SQL语句查询分类表,最终输出JSON数据。本站在未做特别说明的情况下所使用的PHP与MySQL连接,和查询语句等均使用原始语句方法如mysql_query等,目的就是为了让读者能够直观的知晓数据的传输查询。
最后附上MYSQL表结构:
先看下效果
大类:
前端技术
程序开发
数据库
小类:
$(function(){getSelectVal();$("#bigname").change(function(){getSelectVal();});});
function getSelectVal(){
$.getJSON("demo/json-select/server.php",{bigname:$("#bigname").val()},function(json){var smallname = $("#smallname");smallname.empty();$.each(json,function(index,array){var option = ""+array['title']+"";smallname.append(option);});});}
实现的效果就是当选择大类时,小类下拉框里的选项内容也随着改变。实现原理:根据大类的值,通过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"> </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.empty();
然后,在页面载入后执行调用函数:
$(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+MySQL实现二级联动下拉菜单
- jQuery+PHP+MySQL二级联动下拉菜单实例讲解
- jQuery+php+mysql,轻松实现ajax无刷新省市二级联动
- jQuery+PHP+MySQL二级联动下拉菜单实例讲解
- jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
- jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
- jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
- jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
- PHP&MySQL基于数据库的二级联动下拉菜单
- php+mysql实现的二级联动菜单效果详解
- 利用php+jQuery+ajax实现汽车车型四级联动下拉菜单
- jquery $.post() 向php传值 实现简单的二级联动
- 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
- jquery+php+mysql二级联动的例子带数据库
- php+mysql+javascript实现二级联动下拉框
- php+mysql实现的二级联动菜单效果详解
- PHP和Ajax实现二级联动下拉菜单(代码、详细注释)
- jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
- jquery实现下拉菜单的二级联动,利用json对象从DB取值显示联动