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 相关文章推荐
使用js画图之正弦曲线
Jan 12 Javascript
Javascript中使用parseInt函数需要注意的问题
Apr 02 Javascript
jQuery实现图片预加载效果
Nov 27 Javascript
Javascript的表单验证-初识正则表达式
Mar 18 Javascript
seajs学习之模块的依赖加载及模块API的导出
Oct 20 Javascript
js学习之----深入理解闭包
Nov 21 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
JQueryDOM之样式操作
Mar 27 jQuery
vue项目创建并引入饿了么elementUI组件的步骤
Apr 11 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
Aug 01 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 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操作符与控制结构代码
2011/12/30 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
党员的自我评价范文
2014/01/02 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
督导岗位职责范本
2015/04/10 职场文书
新闻通讯稿范文
2015/07/22 职场文书
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers