Bootstrap Select2 组件固定与 Ajax 数据加载详解

作者:键盘侠

时间:2026-10-30

浏览:350

本文详细解析 Bootstrap Select2 组件在实际项目中的两种核心数据加载方式:固定数据与 Ajax 动态获取。通过引入必要的 JS/CSS 资源,演示了如何配置静态选项及通过 Ajax 接口获取远程数据。重点说明了 Ajax 返回数据的 JSON 格式要求,并结合 PHP 后端代码示例,展示了如何构造符合 Select2 规范的数据结构,帮助开发者避免常见配置错误。

文章目录

Bootstrap Select2 组件概述与资源引入

本文汇总了 Bootstrap Select2 组件在真实项目场景下的具体应用方法,供有需求的开发者参考,旨在帮助读者规避常见配置陷阱,提升开发效率。

最终效果展示如下:

Bootstrap Select2 组件概述与资源引入

无论采用静态固定数据还是通过 Ajax 动态获取,均需正确引入 bootstrap.js、bootstrap.css、select2.js 以及 select2.css 文件。

固定数据加载配置示例


{{ stylesheet_link('css/bootstrap.css') }}
{{ stylesheet_link('css/select2.min.css') }} 
{{ stylesheet_link('css/font-awesome.min.css') }} 
{{ stylesheet_link('css/prettify.css') }} 


{{ javascript_include('js/lib/jquery.js') }}
{{ javascript_include('js/lib/select2.full.js') }}
{{ javascript_include('js/lib/bootstrap.js') }}
<div class="container"> 
 <section id="tags" class="row">
 <div class="col-md-4">
  <p>
   <select class="js-example-tags form-control" multiple="multiple">
    <option selected="selected">orange</option>
    <option>white</option>
    <option selected="selected">purple</option>
   </select>
  </p>
 </div>
</section>
</div>
</div>

以下是固定数据加载的配置方式:

Ajax 动态数据加载配置


$(".js-example-tags").select2({
 tags: true, //是否可以自定义tag
 createSearchChoice:function(term, data) { 
 alert(1);
 if ($(data).filter(function() { 
  return this.text.localeCompare(term)===0; 
 }).length===0) 
 {return {id:term, text:term};} 
 },
 multiple: true,
 data: [{id: 0, text: 'story'},{id: 1, text: 'bug'},{id: 2, text: 'task'}]
});

以下是通过 Ajax 动态获取数据的配置方式:


$(".js-example-tags").select2({
 // enable tagging
 tags: true,

 // loading remote data
 // see https://select2.github.io/options.html#ajax
 ajax: {
 url: "Ask2/tags",
 processResults: function (data, page) {
  console.log(data);
  var parsed = data;
  var arr = [];
  for(var x in parsed){
   arr.push(parsed[x]); //这个应该是个json对象
  }
  console.log(arr);
  return {
  results: arr
  };
 }
 }
});

关键说明

Ajax 接口返回的数据格式需符合特定结构,示例如下:[{id: 0, text: 'story'},{id: 1, text: 'bug'},{id: 2, text: 'task'}]。

后端数据格式规范与 PHP 实现


  ...
  $p1 = array(id => "1",text=>"java");
  $p2 = array(id => "2",text=>"jvm");
  $test = array(1=>$p1,2=>$p2);  
  $params['responseData'] = $test;
  $this->view->disable();
  return parent::ajaxResponse($params);

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

Bootstrap 基础学习教程

Bootstrap 实战应用教程

Bootstrap 插件集成教程

以上即为 Select2 组件的主要用法介绍,期望对读者的学习与实践提供实质帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章