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 相关文章推荐
深入解析contentWindow, contentDocument
Jul 04 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
JavaScript函数基础详解
Feb 03 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
Jun 16 Javascript
jquery版轮播图效果和extend扩展
Jul 18 jQuery
Vue使用枚举类型实现HTML下拉框步骤详解
Feb 05 Javascript
vue中引用阿里字体图标的方法
Feb 10 Javascript
vue 实现 rem 布局或vw 布局的方法
Nov 13 Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 28 Javascript
js对象简介与基本用法示例
Mar 13 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
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 清除网页病毒的方法
2008/12/05 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
JavaScript实用技巧(一)
2010/08/16 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
Python实现获取某天是某个月中的第几周
2015/02/11 Python
python中dir函数用法分析
2015/04/17 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
tensorflow 变长序列存储实例
2020/01/20 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
信息专业个人的自我评价
2013/12/27 职场文书
党员培训思想汇报
2014/01/07 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
观后感的写法
2015/06/19 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
js前端图片加载异常兜底方案
2022/06/21 Javascript