Мульти автокомплит с помощью CJuiAutoComplete

Я уже писал про использование CJuiAutoComplete. Сегодня расскажу, как с помощью него можно сделать мульти автокомлит. Для этого надо будет только изменить конфиг виджета и все.
Основываясь на предыдущей заметке, предположим, что теперь необходимо указать несколько покупателей.

$autocompleteConfig = array(
    'model'=>$model,
    'attribute'=>'customers',
    'value'=>$model->customers,
    'source' =>'js:function(request, response) {
        $.getJSON("'.$this->createUrl('customers/autocomplete').'", {
            term: request.term.split(/,s*/).pop()
        }, response);
    }',
    'options' => array(
        'minLength' => '2',
        'showAnim' => 'fold',
        'search' =>'js: function() {
            var term = this.value.split(/,s*/).pop();
            if(term.length < 2)
                return false;
         }',
        'focus' =>'js: function() {
            return false;
         }',
        'select' =>'js: function(event, ui) {
            var terms =  this.value.split(/,s*/);
            terms.pop();
            terms.push(ui.item.value);
            terms.push("");
            this.value = terms.join(", ");
            return false;
        }',
    ),
    'htmlOptions' => array(),
);

Экшен нам отдает строку разделителем в которой является запятая. После отправки формы в атрибуте customers будет строка, которую можно распарсить и дальше делать, все что надо :).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *