Intereting Posts
Laravel принадлежит для возврата null Yii2 Шифрование имени пользователя и пароля PHP – Как удалить пустые записи массива рекурсивно? Условный пользовательский выход по цене продажи продуктов и обычной цене Почему запросы отправки php5-fpm медленны, в то время как тот же php-cli-код / ​​консольный завиток работает очень быстро? SSL-самоподписанные сертификаты для подключения к Mysql с PHP Обрезаемая фатальная ошибка: объект класса mysqli_stmt не может быть преобразован в строку Сделать URL-адрес, чувствительный к SEO, (исключить идентификатор). Как считать простое число от 0 до 100000000 менее чем за 1 минуту в PHP? Как сохранить переменную на уровне приложения в php? Установка CodeIgniter в корневом каталоге и WordPress в подкаталоге Doctrine 2: обновить запрос с помощью построителя запросов Zend Server Windows – заголовок авторизации не передается скрипту PHP PHP изменяет размер изображения пропорционально большему размеру PHP: подтверждение номеров телефонов в США

как создать пользовательское текстовое поле автозаполнения в yii

Я новичок в yii. Мне нужно написать пользовательский yii auto complete. Я знал, что CJuiAutocomplete есть. Но мне нужно реализовать собственный пользовательский автозаполненный. может ли кто-нибудь мне посоветовать или помочь мне разработать настраиваемое текстовое поле автозаполнения. взяв идентификатор во время отображения имени в текстовом поле.

заранее спасибо

Related of "как создать пользовательское текстовое поле автозаполнения в yii"

Вот действие в контроллере сайта …

public function actionAutoComplete($term){ $query = Yourmodel::model()->findallbyattributes( array('somecolumn'=>$term)); $list = array(); foreach($query as $q){ $data['value']= $q['id']; $data['label']= $q['name']; $list[]= $data; unset($data); } echo json_encode($list); } 

и вот форма поиска на ваш взгляд:

 $form=$this->beginWidget('CActiveForm', array( 'id'=>'searchform', 'enableAjaxValidation'=>false, 'action' => '/' )); ?> <fieldset> <div class="input-append"> <?php echo CHtml::hiddenField('selectedvalue',''); $this->widget('zii.widgets.jui.CJuiAutoComplete', array( 'name'=>'searchbox', 'value'=>'', 'source'=>CController::createUrl('/site/autoComplete'), 'options'=>array( 'showAnim'=>'fold', 'minLength'=>'2', 'select'=>'js:function( event, ui ) { $("#searchbox").val( ui.item.label ); $("#selectedvalue").val( ui.item.value ); return false; }', ), 'htmlOptions'=>array( 'onfocus' => 'js: this.value = null; $("#searchbox").val(null); $("#selectedvalue").val(null);', 'class' => 'input-xxlarge search-query', 'placeholder' => "Search...", ), )); echo '<button class="btn" type="submit">Submit</button>'; ?> </div> </fieldset> <?php $this->endWidget(); ?> </form> 

Из-за этого условия

 array('somecolumn'=>$term) 

он будет показывать результаты, только если вы напишете полную строку. Например, у вас есть ['coffee', 'take']. Когда вы вводите окно поиска, он не будет показывать результаты для coff, cof, co, ca, cak и т. Д., Только покажет результаты, если вы введете полноценный кофе, вы получите ['coffee'].

Поэтому вам нужно что-то вроде:

 $match = $_GET['term']; $tags = Tags::model()->findAll( 'tag_name LIKE :match', array(':match' => "%$match%") ); 

Это покажет результаты для coff, cof, co, ca, cak и т. Д.