我是新来的。我需要编写自定义的yii auto complete。我知道CJuiAutocomplete存在,但是我需要实现自己的自定义自动完成功能。任何人都可以指导我或帮助我开发自定义自动填充文本字段。在文本字段中显示名称时获取ID。
提前致谢
这是站点控制器中的操作…
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>