bootstrap select2 动态从后台Ajax动态获取数据的代码

所属分类: 网络编程 / AJAX相关 阅读数: 1987
收藏 0 赞 0 分享

效果图展示:

实现方式:

前端代码:

<div class="form-group">
 <label class="font-noraml">动态多选</label> 
 <select id="bsselect2ID" name="bsselect2ID" class="form-control select2-multiple" 
  type="text" multiple data-live-search="true" >
 </select>
</div>
 
.....
<script th:inline="javascript">
 var url = ctx + "demo/form/select2";
 console.log(url)
 $(function() {
  var selectedValues = [];   
   $("#bsselect2ID:selected").each(function(){ 
   selectedValues.push($(this).val());  
   }); 
   
    $("#bsselect2ID").selectpicker({
      noneSelectedText : '请选择' ,  //默认显示内容
      //placeholder:'请选择',//默认文字提示
      // {#tags: true,//允许手动添加 #}
      allowClear: true,//允许清空
    });
    loadnetdatas2();
    loadnetdatabs2();  //执行此函数,从后台获取数据,拼接成option标签,添加到select的里面
    
    //初始化刷新数据
    $(window).on('load', function() {
     $('#bsselect2ID').selectpicker('val', ''); 
      $('#bsselect2ID').selectpicker('refresh');
    });
 
  });
 //var category = $.trim($('#select2ID option:selected').val());
 function loadnetdatabs2(){
      $.ajax({
        url : url,  //后台controller中的请求路径
        type : 'GET',
        async : false,
        datatype : 'json',
        success : function(results) {
          if(results){
           var jsondata=results.data;
           //console.log(jsondata)
            var netnames =[];
            console.log(jsondata.length)
            for(var i=0,len=jsondata.length;i<len;i++){
              var netdata = jsondata[i];
              console.log(netdata)
                //拼接成多个<option><option/>
                netnames.push('<option value="'+netdata.userId+'">'
      +netdata.userName+'</option>') 
            }
            $("#bsselect2ID").html(netnames.join(''));  
            //根据netID(根据你自己的ID写)填充到select标签中
            $('#bsselect2ID').selectpicker('val', ''); 
            $('#bsselect2ID').selectpicker('refresh');  
          }
        },
        error : function() {
          alert('查询出错');
        }
      });
    };
 </script>

后端实现代码:

 /**
   * 动态获取下拉框内容下拉框
   */
  @GetMapping("/select2")
  @ResponseBody
  public Map<String,Object> selectDynamic()
  {
   Map<String,Object> infoMap=new HashMap<>();
   List<UsersModel> infoLists=new ArrayList<>();
   System.out.println("开始选择...");
   for(UserFormModel user:users) {
   UsersModel userModel=new UsersModel();
   userModel.setUserId(user.getUserId());
   userModel.setUserName(user.getUserName());
   infoLists.add(userModel);
   }
   infoMap.put("data", infoLists);
   return infoMap;
  }

以上所述是小编给大家介绍的bootstrap select2 动态从后台Ajax动态获取数据的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

更多精彩内容其他人还在看

理解jquery ajax中的datatype属性选项值

jquery中ajax的dataType属性用于指定服务器返回的数据类型,如果不指定,jQuery 将自动根据HTTP包MIME信息来智能判断,如果datatype选项不填写的话,会将返回的数据当成字符串处理。
收藏 0 赞 0 分享

基于Jquery ajax技术实现间隔N秒向某页面传值

这篇文章给大家介绍jquery ajax技术实现每隔一段时间向某页面传值,以及setinterval()方法的语法介绍,对本文感兴趣的朋友可以参考下
收藏 0 赞 0 分享

通过Ajax两种方式讲解Struts2接收数组表单的方法

使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢?接下来,通过本文给大家介绍通过Ajax两种方式讲解Struts2接收数组表单的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Jquery.history解决ajax的前进后退问题

本文主要给大家介绍基于Jquery.history解决ajax的前进后退问题,涉及到jquery前进后退相关方面的知识,本文内容经典,非常具有参考价值,特此把jquery前进后退相关知识分享在脚本之家网站供大家参考
收藏 0 赞 0 分享

使用HTML5中postMessage知识点解决Ajax中POST跨域问题

这篇文章主要介绍了使用HTML5中postMessage知识点解决Ajax中POST跨域问题的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

谈谈你对aja的理解(一、二)

Ajax是Asynchronous Javascript And XML的缩写,其作用通过Ajax可以使用Javascript语句来调用XMLHttpRequest对象,直接与服务器进行通讯,可以在不重载页面的情况下与服务器交换数据。
收藏 0 赞 0 分享

关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结

最近比较空闲,于是抽个时间整理些关于ajax方法的东东。在项目中经常发现ajax板块好多问题都是属性,方法,事件大小写不区分问题,最终导致了程序运行出现麻烦,下面给大家介绍关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结
收藏 0 赞 0 分享

Ajax请求session失效该如何解决

HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。
收藏 0 赞 0 分享

编写轻量ajax组件02--浅析AjaxPro

ajaxpro虽然是一个比较老的组件,不过实现思想和源码还是很有借鉴价值的。接下来通过本篇文章给大家介绍编写轻量ajax组件02--浅析AjaxPro,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

编写轻量ajax组件01-与webform平台上的各种实现方式比较

这篇文章主要介绍了编写轻量ajax组件01-与webform平台上的各种实现方式比较,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多