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 相关文章推荐
关于flash遮盖div浮动层的解决方法
Jul 17 Javascript
Javascript读取cookie函数代码
Oct 16 Javascript
javascript获取所有同类checkbox选项(实例代码)
Nov 07 Javascript
jQuery之字体大小的设置方法
Feb 27 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
JS多物体实现缓冲运动效果示例
Dec 20 Javascript
js实现自动轮换选项卡
Jan 13 Javascript
jQuery Collapse1.1.0折叠插件简单使用
Aug 28 jQuery
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
深入koa-bodyparser原理解析
Jan 16 Javascript
js实现贪吃蛇小游戏
Oct 29 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
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
python错误处理详解
2014/09/28 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
python 重定向获取真实url的方法
2018/05/11 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
用Python解决x的n次方问题
2019/02/08 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python opencv摄像头的简单应用
2019/06/06 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
浅谈Python __init__.py的作用
2020/10/28 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
什么是跨站脚本攻击
2014/12/11 面试题
生产车间主管岗位职责
2013/12/28 职场文书
建设工程授权委托书
2014/09/22 职场文书
秋收起义观后感
2015/06/11 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
文书工作总结(范文)
2019/07/11 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers