Enhanced Yii2 wrapper for the Select2 jQuery plugin (sub repo split from yii2-widgets).
This is the Select2 widget and a Yii 2 enhanced wrapper for the Select2 jQuery plugin. This input widget is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results. The widget is specially styled for Bootstrap 3 and offers a few enhancements not available in the source plugin. The widget allows graceful degradation to a normal HTML select or text input, if the browser does not support JQuery.
NOTE: This extension is a sub repo split of yii2-widgets. The split has been done since 08-Nov-2014 to allow developers to install this specific widget in isolation if needed. One can also use the extension the previous way with the whole suite of yii2-widgets.
The preferred way to install this extension is through composer. Check the composer.json for this extension's requirements and dependencies. Read this web tip /wiki on setting the
minimum-stability settings for your application's composer.json.
To install, either run
$ php composer.phar require kartik-v/yii2-widget-select2 "@dev"
require section of your
NOTE: Refer the CHANGE LOG for details on changes to various releases.
The widget has a major version revamp with v2.0. This release includes updates to use Select2 plugin release v4.0. Select2 release v4.0 is a major rewrite over Select2 v3.x and hence quite a few enhancements or changes should be expected. To use the earlier plugin release v3.5.2, you must point it to the v1.0.1 release of the widget.
Enhancements with release v2.0:
themeproperty that allows you to set themes in Select2 to style your widget.
- A brand new theme by Krajee
Select2::THEME_KRAJEEis specially styled for Select2. This will help achieve various new yii2-widget-select2 features. This theme matches the bootstrap 3 styling with enhancements.
- Additional themes provided in form of
Select2::THEME_BOOTSTRAP. One can add their own custom theme and configure the widget.
- No more
queryplugin property needed. It is also not mandatory to configure
dataeven if you have not set
ajax. Widget will intelligently evaluate the properties and default list values.
- Enhanced tagging support. Use it just like a multiple select but with taggable values. In addition, one can create tags on the fly.
- Enhanced ajax support. Refer the demos for details.
initSelectionmethod of Select2 3.5.x plugin is obsolete/removed. New
initValueTextproperty is been provided with the Select2 widget to cater to this (e.g. for ajax based loading).
- Ability to disable selective option values in the Select2 dropdown OR add HTML attributes to selective options.
- Enhancement by Krajee to disable the search box to use like a normal select.
- Enhancements to locales and translations. Allow multiple language Select2 widgets on the same page.
You can refer detailed documentation and demos on usage of the extension.
use kartik\select2\Select2; // Normal select with ActiveForm & model echo $form->field($model, 'state_1')->widget(Select2::classname(), [ 'data' => $data, 'language' => 'de', 'options' => ['placeholder' => 'Select a state ...'], 'pluginOptions' => [ 'allowClear' => true ], ]); // Multiple select without model echo Select2::widget([ 'name' => 'state_2', 'value' => '', 'data' => $data, 'options' => ['multiple' => true, 'placeholder' => 'Select states ...'] ]);
yii2-widget-select2 is released under the BSD 3-Clause License. See the bundled
LICENSE.md for details.