indicalabs/yii2-select2

The Select2 widget for the Yii framework

Installs: 229

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:yii2-extension

dev-master 2023-09-05 12:50 UTC

This package is auto-updated.

Last update: 2024-04-05 14:00:49 UTC


README

Wrapper Widget to use jQuery Plugin Select2 in Yii2 application.

Select2 script: https://github.com/ivaynberg/select2

Installation

Download or clone this repository and paste in /PROJECT-ROOT/vendor/yiisoft/yii2-select2/yii/select2

Configure this extension in /PROJECT-ROOT/vendor/yiisoft/extensions.php

'yiisoft/yii2-typeahead' => array ( 'name' => 'yiisoft/yii2-typeahead', 'version' => '9999999-dev', 'alias' => array ( '@yii/typeahead' => $vendorDir . '/yiisoft/yii2-typeahead/yii/typeahead', ), ),

Usage

In your view file (_form.php)

$model, 'attribute' => 'country_id', 'clientOptions' => [ //'local' => [], 'name' => 'country_id', 'limit' => 1, 'valueKey' => 'text', 'remote' => [ 'url' => Yii::$app->urlManager->createAbsoluteUrl('data/country/findcountry'). '&term=%QUERY', // 'cache' => false, ], 'engine' => new yii\web\JsExpression('Hogan'), 'template' => '

{{id}}{{text}} - {{id}}

', ], 'events' => [ 'selected' => new yii\web\JsExpression("function(evt,data) { alert(data); };"), ], ]); ?>
Or in config
```php
    ...
    'import' => array(
        ...
        'ext.select2.Select2',
        ...
    ),
    ...

Example:

You can replace the
CHtml::dropDownList() by Select2::dropDownList()
CHtml::activeDropDownList() by Select2::activeDropDownList()

Or

    ...
    echo Select2::multiSelect("test", null, array('test1','test2'), array(
        'required' => 'required',
        'placeholder' => 'This is a placeholder',
        'select2Options' => array(
            'maximumSelectionSize' => 2,
        ),
    ));
    ...
    echo Select2::activeMultiSelect($model, "attr", array('test1','test2'), array(
        'placeholder' => 'This is a placeholder',
    ));
    ...

Or this

    ...
    $this->widget('Select2', array(
       'name' => 'inputName',
       'value' => 2,
       'data' => array(
           1 => 'Option 1',
           2 => 'Option 2',
           3 => 'Option 3',
           4 => 'Option 4',
        ),
    ));
    ...