今回は人気のドロップダウンスクリプト、Select2を紹介します。
通常のドロップダウンリストは、
<div class="form-group{{ $errors->has('category') ? ' has-error' : '' }}"> <label class="col-md-4 control-label">分類</label> <div class="col-md-6"> {!! Form::select('category', ['犬', '猫', '猿'], null, ['class' => 'form-control']) !!} </div> </div>
とテンプレートで指定すると、
と表示。
これに、
<div class="form-group{{ $errors->has('category') ? ' has-error' : '' }}"> <label class="col-md-4 control-label">分類</label> <div class="col-md-6"> {!! Form::select('category[]', ['犬', '猫', '猿'], null, ['class' => 'form-control', 'multiple' => 'multiple']) !!} </div> </div>
と'multiple' => 'multiple'
を追加すると、
と複数選択に変わります。
しかし、この複数選択にSelect2を使用すれば、
のように、ドロップダウンから複数選択して、最初の行に選択した値を表示してくれます。また、そこでXをクリックすることで削除もできます。
必要な設定は、
まず、
https://github.com/select2/select2/archive/master.zip
よりダウンロードして解凍してから、レイアウトのテンプレートを以下のように編集します。
... <head> ... <link href="{{ url('assets/css/select2/select2.min.css') }}" rel="stylesheet" type="text/css"> ... </head> <body> ... <script src="{{ url('assets/js/select2/select2.min.js') }}"></script> <script src="{{ url('assets/js/select2/ja.js') }}"></script> <script type="text/javascript"> $(document).ready(function() { $(".js-multiple").select2({ width: 'resolve' }); }); </script> ...
そして、画面のテンプレートを、
<div class="form-group{{ $errors->has('category') ? ' has-error' : '' }}"> <label class="col-md-4 control-label">分類</label> <div class="col-md-6"> {!! Form::select('category[]', ['犬', '猫', '猿'], null, ['class' => 'form-control js-multiple', 'multiple' => 'multiple']) !!} </div> </div>
と編集します。
Select2には他にもいろいろな機能があります。
https://select2.github.io/examples.html
メルマガ購読の申し込みはこちらから。