1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 下拉菜单的级联操作

下拉菜单的级联操作

时间:2018-08-04 09:27:55

相关推荐

下拉菜单的级联操作

web前端|js教程

下拉菜单,操作

web前端-js教程

这篇文章主要为大家详细介绍了下拉菜单的级联操作,分享了ajax与后台交互传输数据的工具类,感兴趣的小伙伴们可以参考一下

易语言水波特效源码,vscode批量修改函数名,ubuntu终端关不上,tomcat死掉怎么排查,爬虫实现脚本,php empty函数,淄川seo关键字优化,织梦 网站源代码,discuz分类信息模块模板lzw

在开发中常常会遇到菜单的级联操作,比如:国家、城市、乡镇的选择等。当选中某个国家的时候,后面的菜单会把该国家内的城市罗列出来,当选中城市的时候,后面的菜单会把对应的乡镇列出来。

qq炫舞dll注入器源码,vscode xp,ubuntu 关机,tomcat 超时,sqlite 视图,php动态网页设计 …,企业展示网站 数据库设计,美国的服务器在哪里买,wordpress自动采集插件,前端框架js,爬虫 知乎,php生成php,网络seo,springboot访问html,aspcms搜索标签,广州网站建设工作室,网页设计加粗代码,discuz 触屏版模板,打开无忧管理后台网,模仿微信页面的软件,phpcms会员管理系统,php网站程序怎么安装lzw

解决这种菜单的级联操作的办法,我理解的有两种:

asp 下载网站源码下载,ubuntu中文 u盘,安卓发送图片到tomcat,头条爬虫 间歇失败,PHP提取网页blob的视频,seo 优化软文lzw

①使用js来实现,把页面所用到的级联数据放到js内,当页面加载完成后,通过js显示到对应的select内,这种方法的解决办法有很多种,最为直观的一种是放到多维数组中,每个人的思维不一样,这里就不详细解说。

②使用ajax异步动态加载,然后显示到对应的select内,这种方法很便捷,建议在开发中使用。

下面看一个开发中的小例子:

JSP简短页面:

--请选择--

该页面内涉及到了两个select,分别为:设备分类和设备子类,其中设备分类为一级菜单,设备子类为二级菜单,设备子类的显示内容由设备分类决定。

下面来看ajax代码段:

function addCodeCategory(){ $.ajax({url: "/facilitydict/showCodeCategory",async: false, //请求是否异步,默认为异步,这也是ajax重要特性type: "GET", //请求方式success: function(result) { result = $.parseJSON(result); var data = result.data; var codeCates = data.split(","); str =--请选择--; for(x in codeCates){str+=\+codeCates[x]+\; } $("#codeCategory").html(str); } }); } function showCodeSubCate(){ $("#codeSubCate").prop("disabled","");//将设备子类的select解除锁定 var target = $("#codeCategory option:selected").text(); $.ajax({url: "/facilitydict/showCodeSubCategory",data : {codeCategory:target},async: false, //请求是否异步,默认为异步,这也是ajax重要特性type: "GET", //请求方式success: function(result) { result = $.parseJSON(result); var data = result.data; var codeCates = data.split(","); var str=""; for(x in codeCates){str+=\+codeCates[x]+\; } $("#codeSubCate").html(str);} }); }

不难看出,当设备分类选择器内的内容发生改变后,触发showCodeSubCate函数来请求后台获取数据,然后把请求到的数据添加到设备子类对应的select内。后台代码的实现如下(只贴出controller的方法):

@RequestMapping("/showCodeCategory") @ResponseBody public Result searchCodeCategory() { Result rs = new Result(); List codeCategorys = facilityDictService.searchCodeCategory(); String codeCate = StringUtil.collectionToCommaDelimitedString(codeCategorys); rs.setData(codeCate); return rs; } @RequestMapping("/showCodeSubCategory") @ResponseBody public Result searchCodeSubCategory(HttpServletRequest request) { String codeCategory = request.getParameter("codeCategory"); Result rs = new Result(); List codeSubCategorys = facilityDictService.searchCodeSubCategory(codeCategory); String codeCate = StringUtil.collectionToCommaDelimitedString(codeSubCategorys); rs.setData(codeCate); return rs; }

这两个方法分别对应上面的两个ajax请求,值得介绍的是后台返回的数据,返回值类型为Result,该返回值类型是一个工具类,具体实现可以在我的博客中查看,链接为:/blog411032/p/5799669.html

ajax与后台交互传输数据的工具类

public class Result implements Serializable { private static final long serialVersionUID = 3637122497350396679L; private boolean success; private T data; private String msg; public Result() { } public Result(boolean success) { this.success = success; } public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public T getData() { return data; } public void setData(T data) { this.data = data; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Result(boolean success, String msg) { super(); this.success = success; this.msg = msg; } public Result(boolean success, T data) { super(); this.success = success; this.data = data; }}

该类为前后台交互提供了非常大的便捷:

下面是前后台的ajax交互:

前台ajax代码:

$.ajax({url: "/supp/deleteSupp",data : {supplierId:supplierId},async: false, //请求是否异步,默认为异步,这也是ajax重要特性type: "GET", //请求方式success: function(data) { var rs = eval((+data+)); flag = rs.success; if(flag){alert("删除成功!"); }} });

下面是后台java代码:

@RequestMapping("/deleteSupp") @ResponseBody public Result deleteSupplier(HttpServletRequest request){ Result rs = new Result(); String supplierId = request.getParameter("supplierId"); supplierService.deleteSupplierById(supplierId); rs.setSuccess(true); return rs; }

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

AJAX显示加载中并弹出图层遮挡页面的实现示例

Ajax提交Form表单页面仍会刷新问题的快速解决办法

ajax快速解决参数过长无法提交成功的问题

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。