• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

laravel框架select2多选插件初始化默认选中项操作示例

php 搞代码 4年前 (2022-01-01) 32次浏览 已收录 0个评论

这篇文章主要介绍了laravel框架select2多选插件初始化默认选中项操作,结合实例形式分析了laravel框架select2多选插件的基本初始化、设置默认选中项等相关操作技巧,需要的朋友可以参考下

本文实例讲述了laravel框架select2多选插件初始化默认选中项操作。分享给大家供大家参考,具体如下:

项目中有发送消息功能,需要能通过搜索,多选用户,来指定发送人。使用 select2 插件来完成。

select2 的 html 代码如下:

 <div class="form-group" id="member_group"> <label class="col-lg-3 control-label required">选择用户 <span class="required">*</span></label><div class="col-lg-4"> </div></div>

select2 的 js 代码如下:

 //选择用户 $("#member_select").select2({ ajax: { //请求的URL url: "{{ route('member.index') }}", //返回的数据类型 dataType: "json", //延迟时间,毫秒 delay: 500, //是否缓存<p style="color:transparent">来源gao!%daima.com搞$代*!码网</p> cache: true, //查询数据 data: function (params) { //params.term就是你搜索输入的参数 return { search: params.term, page: params.page || 1 }; }, //请求结果回调函数,data就是后端返回的数据 processResults: function (data, params) { var data = data.data; var results = []; //循环数据,将数据压入results中 //注意数据必须要有二个属性,id和text,分别对应option的value和文本 //网上有些说无法选中元素,请先检查这里,你是否设置了id,并且不为空 $(data.data).each(function (i, obj) { results.push({ id: obj.id, text: obj.name }); }); return { results: results, pagination: { more: (data.current_page * data.per_page) <data.total } }; } }, placeholder: '选择用户', //是否多选 multiple: true, allowClear: true }); 

后端返回的数据如下,直接使用 laravel 的 paginate() 方法 返回分页数据。

 { "status_code":200, "message":"查询成功", "data":{ "current_page":1, "data":[ { "id":2006, "name":"用户1" }, { "id":2005, "name":"用户3" }, { "id":2004, "name":"用户3" } ], "first_page_url":"http://test.me/member/index?page=1", "from":1, "last_page":1, "last_page_url":"http://test.me/member/index?page=1", "next_page_url":"http://test.me/member/index?page=1", "path":"http://test.me/member/index", "per_page":1, "prev_page_url":null, "to":null, "total":3 } } 

在编辑消息时,我们需要查看,这条消息发送给了哪些人,这就需要进入编辑页面时,让 select2 默认选中用户。

网上说通过如下方法可以选中。

 $("#spread_select").val([1, 2]).trigger("change"); 

但是我们这里select2的option是通过ajax动态加载的,刚进页面时,select2的ajax根本没有触发,导致select2中没有option元素,更无法被选中。

我们通过下面的方式,来实现默认选中。

 var selObj = [ {"id": 1, "name": "小徐"}, {"id": 2, "name": "小张"}, {"id": 3, "name": "小明"}, ]; (function initSel(selObj) { if (selObj) { for (var ix = 0; ix <selObj.length; ix++) { var item = selObj[ix]; var option = new Option(item.name, item.id, true, true); $("#member_select").append(option); } $("#member_select").trigger('change'); } })(selObj); 

selObj中的数据,可以通过PHP后端生成好后,渲染到页面,然后通过JSON.parse()解析成JSON对象。

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

以上就是laravel框架select2多选插件初始化默认选中项操作示例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:laravel框架select2多选插件初始化默认选中项操作示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址