layui实现下拉框多选

引用layui第三方扩展实现下拉框选择渲染

第三方插件地址xmSelect下拉多选 xmSelect

实现效果



javascript 复制代码
//第三方扩展插件
<script type="text/javascript" src="${ctx }/config/layui/dist/xm-select.js"></script>
//jquery渲染
<script type="text/javascript" src="${ctx}/config/jquery-3.5.1/jquery-3.5.1.min.js"></script>
javascript 复制代码
 <div class="layui-input-inline" id="category" ></div>
        <!-- 添加一个隐藏的input元素,用来存储选中数据的value值 -->
        <input type="hidden" id="hiddenValue" name="category">
javascript 复制代码
//category 是前端的渲染页面下拉框,
    // 创建一个下拉选择框,并设置相关属性
    var category = xmSelect.render({
        el: '#category', // 将下拉选择框挂载到id为category的元素上
        toolbar: {//开启单选则不需要头部工具栏
            show: true, // 显示工具栏
            list: [ 'ALL', 'CLEAR'] // 工具栏上的选项列表
        },
        theme: {
            color: '#51495f', // 设置主题颜色
        },
        filterable: true, // 允许筛选
        paging: true, // 启用分页
        // radio: true,//单选
        pageSize: 5,
        on: function (data) {
            //arr:  当前多选已选中的数据
            var arr = data.arr;
            // 从选中数据中提取value值
            var value = arr[0].value;
            console.log(arr);
            console.log(value);
            // 存储所选数据的值,这里是在前端隐藏了书籍类别输入框,将提出出来的值写入到表单中便于提交到数据库中
            document.getElementById('hiddenValue').value = value;//这里是将我自己需要的值返回到前端界面,再提交表单的时候不需要将数据转化,当然你也可以自己摸索一下
            // <input type="hidden" id="hiddenValue" name="category">

        },
        data: [] // 初始化数据为空数组
    })
    // 发送一个GET请求,从后端获取所有分类信息
    $.ajax({
        url: ctx + '/book/getAllCategories', // 请求的URL
        type: 'GET', // 请求类型为GET
        success: function (data) { // 请求成功后执行的回调函数
            // 将后端返回的数据转换为前端需要的格式
            var newData = data.map(function (item) {
                return {name: item.categoryName, value: item.cateId};
            });
            // 更新下拉选择框的数据
            category.update({data: newData});
        }, error: function (error) { // 请求失败后执行的回调函数
            console.log('Error fetching data from backend: ' + error); // 在控制台输出错误信息
        }
    })
java 复制代码
controller:

   @RequestMapping("/getAllCategories")
    @ResponseBody
    public List<CategoryEntity> getAllCategories() {
        List<CategoryEntity> data = bookService.findAll();
        return data;
    }


service:
 List<CategoryEntity> findAll();

serviceimpl:
  @Override
    public List<CategoryEntity> findAll() {
        return categoryDao.findAll();
    }


dao:

 List<CategoryEntity> findAll();
xml 复制代码
  <select id="findAll" resultMap="cateMap"
            resultType="layui.library.manager.project.entity.CategoryEntity">
        SELECT *
        FROM tb_book_category
        order by cateId
    </select>
相关推荐
崔庆才丨静觅12 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606113 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了13 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅13 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅14 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅14 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment14 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅15 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊15 小时前
jwt介绍
前端
爱敲代码的小鱼15 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax