前言javascript
最近用到bootstrap 的 select2,官方文檔中的例子也不少在此寫一些實際項目中用法總結,有須要的朋友能夠借鑑一下。php
效果圖css
不管是固定方式獲取數據仍是ajax獲取都須要引入bootstrap.js/css 和 select2.js/css
及:html
{{ 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>
固定方式獲取
java
$(".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方式獲取
jquery
$(".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 }; } } });
說明git
在ajax中的數據返回格式應該是這個樣子滴(results):github
[{id: 0, text: 'story'},{id: 1, text: 'bug'},{id: 2, text: 'task'}]
對應的php代碼例子ajax
... $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);