jQuery+PHP+MySQL二级联动下拉菜单实例讲解


Posted in Javascript onOctober 27, 2015

二级联动下拉菜单选择应用在在很多地方,比如说省市下拉联动,商品大小类下拉选择联动。本文将通过实例讲解使用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三者结合如何实现的二级联动下拉菜单,程序还有一些不足之处,需要继续完善,希望本文可以给大家一点启发。

Javascript 相关文章推荐
JavaScript表单常用验证集合
Jan 16 Javascript
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
jquery.jstree 增加节点的双击事件代码
Jul 27 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
javascript折半查找详解
Jan 26 Javascript
JS中frameset框架弹出层实例代码
Apr 01 Javascript
AngularJS自定义插件实现网站用户引导功能示例
Nov 07 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
Vue组件通信之Bus的具体使用
Dec 28 Javascript
详解使用Next.js构建服务端渲染应用
Jul 10 Javascript
js字符串处理之绝妙的代码
Apr 05 Javascript
Vue+Django项目部署详解
May 30 Javascript
jQuery结合CSS制作动态的下拉菜单
Oct 27 #Javascript
jquery实现的V字形显示效果代码
Oct 27 #Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 #Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
Oct 27 #Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 #Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 #Javascript
JavaScript模块规范之AMD规范和CMD规范
Oct 27 #Javascript
You might like
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
javascript实现yield的方法
2013/11/06 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
基于JS判断对象是否是数组
2020/01/10 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
JavaScript实现消消乐的源代码
2021/01/12 Javascript
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
实习生自我鉴定
2013/12/12 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
村主任当选感言
2015/08/01 职场文书
优质服务标语口号
2015/12/26 职场文书
外出学习心得体会范文
2016/01/18 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python