jQuery Ajax实现Select多级关联动态绑定数据的实例代码


Posted in jQuery onOctober 26, 2018

jQuery选择插件分为基本版和美化版,重点说下美化版,如下图所示:

jQuery Ajax实现Select多级关联动态绑定数据的实例代码

相比最原始的版本,美化后的选择插件可以说是很漂亮了且功能更加强大(这里不说了,自行发掘吧)。这里主要是添加了它的特有属性并调用 class=”chzn-select”:

jsp页面:

<select class=”chzn-select” id="CODE" name="CODE">
  ......
</select>

js页面:

$(".chzn-select").chosen();

注意引用jQuery的js,有多种版本,建议使用高版本,如 jquery-1.9.1.min.js。

下面进入到主题,select绑定数据是很常见的,但大多数都是静态的或者数据确定的,这些其实都很好处理,我们需要的是动态绑定且多级关联的。

通过下面的实例来看看是如何一步步处理的:

这里我只选择二级关联,更复杂的大家可以在充分掌握后再自行研究。我们要实现的是点击一个select下拉框选择后,另一个select下拉框动态关联其对应的值,如下主select是省份,关联的select是城市,数据库分别存在省份和城市的表,省份表字段有SF_ID和SF_NAME,城市表字段有CY_ID,CY__NAME,CY_SFID(关联的省份ID):

<!-- 省份 -->
<select class="chzn-select" id="ShengFen" name="ShengFen" onChange="setCity();" data-placeholder="请选择省份">
  <option value=""></option>
  <option value="">全部</option>
  <c:foreach items="${sfList}" var="sf">
   <option value="${sf.SF_ID}" <c:if test="${pd.sfId == sf.SF_ID}">selected</c:if>>${sf.SF_NAME} 
   </option>
  </c:foreach>
</select>
<!-- 城市 -->
<select class="chzn-select" id="City" name="City" data-placeholder="请选择城市">
  <option value=""></option>
  <option value="">全部</option>
  <c:foreach items="${cyList}" var="cy">
   <option value="${cy.CY_ID}" <c:if test="${pd.cyId == cy.CY_ID}">selected</c:if>>${cy.CY_NAME} 
   </option>
  </c:foreach>
</select>

这里初始化的时候后台从数据库取数传值到页面,后台使用的是ModeView和PageData,大家视情况而定。

首先给主select省份添加onChange方法,表示选择更改的触发,即省份修改后城市对应的下拉框中的值也要变化,对应的处理方法是setCity(),我们使用ajax的方式来获取数据,如下在js中处理:

//下拉框动态关联
function setCity(){
  // 获取选择的省份的ID
  var sfId = $("#ShengFen").val();
  $.ajax({
   type : "POST",
   url : "SFAndCity/setCity.do",
   data : {"sfId":sfId},
   dataType : "json",
   success : function(data){
     var cyList = data.cyList;
     // 移除以前的绑定数据
     $("#City option").remove();
     // 美化一下select(可以去除)
     var _option = "<option value=\"\"";
     _option += "></option>";
     _option += "<option value=\"\"";
     _option += ">全部</option>";
     // 绑定数据
     if(cfList && cyList.length != 0){
       $("select[name=City]").append(_option);
       for(var i=0;i<cyList.length;i++){
        var option = "<option value=\""+cyList.CY_ID+"\"";
        option += ">"+cyList.CY_NAME+"</option>";
        $("select[name=City]").append(option);
       }
     }else{
       $("select[name=City]").append(_option);
     }
     // 保证jQuery的选择插件动态绑定数据生效
     $("#City").trigger("liszt:updated");
     $("#City").chosen();
   }
  });
}

最后就是后台的处理了,如下:

@RequestMapping(value="/setCity")
@ResponseBody
public Map<String,Object> setCity(){
  Map<String,Object> map = new HashMap<String,Object>();
  PageData pd = new PageData();
  try{
    pd = this.getPageData();
    String sfId = pd.getString("sfId"); //和ajax中传递的保持一致
    pd.put("CY_SFID",sfId);
    List<PageData> cyList = cyService.listCityBysfId(pd);
    map.put("cyList",cyList);  //和ajax中获取的保持一致
    return map;
  }catch(Exception e){
    
  }
  return map;
}

当然,上面关于数据的获取根据自己实际代码来编写,主要是获取数据并返回。

总结

以上所述是小编给大家介绍的jQuery Ajax实现Select多级关联动态绑定数据的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery实现百度登录框的动态切换效果
Apr 21 jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
简单实现jquery隔行变色
Nov 09 jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
jquery插件实现代码雨特效
Apr 24 jQuery
jquery使用FormData实现异步上传文件
Oct 25 #jQuery
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 #jQuery
jQuery pagination分页示例详解
Oct 23 #jQuery
jquery.pagination.js分页使用教程
Oct 23 #jQuery
jquery分页插件pagination使用教程
Oct 23 #jQuery
使用jquery Ajax实现上传附件功能
Oct 23 #jQuery
jquery实现动态添加附件功能
Oct 23 #jQuery
You might like
一个MYSQL操作类
2006/11/16 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
php生成HTML文件的类方法
2019/10/11 PHP
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
Python中的并发编程实例
2014/07/07 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python制作抖音代码舞
2019/04/07 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
通过实例解析Python return运行原理
2020/03/04 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
业务代表的岗位职责
2013/11/16 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
主办会计岗位职责
2014/03/13 职场文书
学习十八大标语
2014/10/09 职场文书
2014年个人售房协议书
2014/10/30 职场文书
圣诞晚会主持词
2015/07/01 职场文书
2015年教师节感言
2015/08/03 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
Java后台生成图片的完整步骤
2021/08/04 Java/Android