select多级联动(级数可根据需求数据递增)
来源:互联网 发布:linux设ip 编辑:程序博客网 时间:2024/05/23 18:24
1、后台获取的数据格式为json格式数据。其格式如下:
{ "data": [ { "id": "22", "name": "亚洲", "children": [ { "id": "23", "name": "韩国", "children": [ { "id": "24", "name": "首尔", "children": [] } ] }, { "id": "45", "name": "中国", "children": [ { "id": "46", "name": "北京", "children": [] }, { "id": "47", "name": "上海", "children": [] }, { "id": "50", "name": "深圳", "children": [] } ] }, { "id": "51", "name": "测试删名字很长很长很长很长很长很长", "children": [ { "id": "53", "name": "测试空格输出", "children": [] } ] } ] }, { "id": "25", "name": "欧洲", "children": [ { "id": "26", "name": "澳大利亚", "children": [ { "id": "44", "name": "澳大利亚", "children": [] } ] }, { "id": "48", "name": "英国", "children": [ { "id": "49", "name": "伦敦", "children": [] } ] } ] } ],}2.上面json数据通过可以通过ajax从后台数据提取组装,也可以js定义(不建议),或者存为一个json文件。下面是页面的html代码和js代码:
页面只需要一个div即可:
<div class="category"></div>js代码:
function createSelect(cityData) {if (cityData.length < 1) {return}var sele = document.createElement("select");sele.className = 'form-control';sele.add(new Option("-请选择-", -1));for (var i = 0; i < cityData.length; i++) {sele.add(new Option(cityData[i].name, cityData[i].id));}sele.onchange = function() {while (this != this.parentNode.lastChild) {this.parentNode.removeChild(this.parentNode.lastChild);}var i = this.selectedIndex;var cate = cityData[i - 1];if (i != 0 && cate.children) {createSelect(cate.children); // 递归调用}};$(".category").get(0).appendChild(sele);};
下面是项目中的一个从后台通过mybatis获取数据然后封装json的过程源码:
<resultMap id="RESULT_CASCADE_DESTINATION" class="com.ytr.trip.viewobject.CascadeDestinationVO" > <result property="id" column="dest_id" javaType="java.lang.String" jdbcType="VARCHAR" /> <result property="name" column="dest_name" javaType="java.lang.String" jdbcType="VARCHAR" /> <result property="children" column="dest_id" select="destination.GET_CHILDREN_LIST"/><!-- 获取子节点 -->
</resultMap>
<select id="GET-CASCADE_DESTINATION-LIST" resultMap="RESULT_CASCADE_DESTINATION"><![CDATA[SELECT * FROM destination dr WHERE dr.level = 1 and team_id = #value# ]]></select><select id="GET_CHILDREN_LIST" resultMap="RESULT_CASCADE_DESTINATION"><![CDATA[SELECT * FROM destination dr WHERE dr.parent_id = #value# ]]></select>Dao层调用:
public List<CascadeDestinationVO> getCascadeDestinationList(Long teamId) {return getSqlMapClientTemplate().queryForList("destination.GET-CASCADE_DESTINATION-LIST", teamId);}//此处提示业务需要,传入了参数获取的的list集合通过com.alibaba.fastjson;转成json即可.
阅读全文
0 0
- select多级联动(级数可根据需求数据递增)
- JavaScript 多级联动select
- javascript多级联动select
- JavaScript 多级联动select
- JavaScript 多级联动select
- JavaScript 多级联动select
- select 多级联动下拉
- select下拉框多级联动
- JS多级联动下拉列表(不限级数)
- JS多级联动下拉列表(不限级数)
- 右下角信息提示脚本&多级联动Select
- javascript select下拉选择框多级联动
- JSP表单select多级联动问题
- 可配置自定义日期多级联动
- 实现多级下拉框联动获取数据
- 多级联动
- 多级联动
- 多级联动
- UNity的一些坑
- 有关结构体、位段的一些问题
- windows 10 开共享时遇到的问题
- java基础提高篇--集合源码分析--jdk1.8 ArrayList源码
- AVAudioPlayer 变速播放音频
- select多级联动(级数可根据需求数据递增)
- Android将Bitmap保存成本地图片
- 机器翻译模型Transformer代码详细解析
- Mon Jul 10 09:41:46 CST 2017, org.apache.hadoop.hbase.client.RpcRetryingCaller@64d92842, java.net.Co
- Python学习笔记(22)-压缩与解压
- fragment中嵌套tabLayout+viewPager,外部fragment切换的时候内部出现
- 动物园
- js map() filter()
- Python中sys.argv的用法