Ниже приведенный код исправно работает - выдает список с результатами поиска, но...
Понадобилось группировать список по категориям (город, отель и тд).
В документации по данному виджету ничего не нашел. Как я выяснил, он использует
jquery autocomplete. Там же есть пример сортировки по категориям. Но в силу малого опыта работы с Yii и JQueryUI так и не смог прикрутить одно к другому.
Буду рад любой идеи или решению.
Спасибо.
<div class="row-fluid">
<div class="control-group span12">
<?= CHtml::activeLabelEx($model, 'place'); ?>
<? $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'model' => $model,
'attribute' => 'place',
'sourceUrl' => CController::createUrl('GetPlaces'),
'options' => array(
'delay' => '0',
'minLength' => '2',
'select' => 'js: function(event, ui) {
this.value = ui.item.label;
$("#HotelSearchForm_placeId").val(ui.item.placeId);
$("#HotelSearchForm_placeType").val(ui.item.placeType);
return false;
}'
),
'htmlOptions' => array(
'class' => 'span12',
'style' => 'font-size:18px; height:36px; ',
),
)); ?>
<? echo $form->hiddenField($model, 'placeId'); ?>
<? echo $form->hiddenField($model, 'placeType'); ?>
<?
Yii::app()->clientScript->registerScript('autocomplete', "
jQuery('#HotelSearchForm_place').data('ui-autocomplete')._renderItem = function( ul, item ) {
return $( '<li>' )
.data( 'item-autocomplete-item', item )
.append( '<div style=\'margin: 0 20px;\'><p style=\'float: left; margin: 0 \'>' + item.value
+ ' <i>(' + item.type + ')</i>'
+ '</p><i style=\'float: right\'>' + item.hasHotels + '</i></div>' )
.appendTo( ul );
};
",
CClientScript::POS_READY
);
?>
</div>
</div>