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 代码也可以变得优美的实现方法
Jun 22 Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
js实现仿百度瀑布流的方法
Feb 05 Javascript
Java File类的常用方法总结
Mar 18 Javascript
简单分析javascript面向对象与原型
May 21 Javascript
html+js+highcharts绘制圆饼图表的简单实例
Aug 04 Javascript
Router解决跨模块下的页面跳转示例
Jan 11 Javascript
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 Javascript
vue-cli2.9.3 详细教程
Apr 23 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
Sep 12 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
Vue+Element-U实现分页显示效果
Nov 15 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打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
php读取本地json文件的实例
2018/03/07 PHP
html向js方法传递参数具体实现
2013/08/08 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
详解用node编写自己的cli工具
2017/05/23 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Python抓取百度查询结果的方法
2015/07/08 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
百丽国际旗下购物网站:优购
2017/02/28 全球购物
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
工艺工程师岗位职责
2014/03/04 职场文书
高中班主任评语大全
2014/04/25 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
初一新生军训方案
2014/05/22 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
社区服务活动感想
2015/08/11 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
详解 TypeScript 枚举类型
2021/11/02 Javascript
MySQL 条件查询的常用操作
2022/04/28 MySQL
Golang 入门 之url 包
2022/05/04 Golang