私はyiiが初めてです。カスタムの yii オート コンプリートを作成する必要があります。CJuiAutocomplete があることは知っていましたが、独自のカスタム オート コンプリートを実装する必要があります。誰でも私を案内したり、カスタムオートコンプリートテキストフィールドの開発を手伝ってくれたりできますか? テキストフィールドに名前を表示しながらIDを取得します。
前もって感謝します
私はyiiが初めてです。カスタムの yii オート コンプリートを作成する必要があります。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>
この状態なので
array('somecolumn'=>$term)
完全な文字列を記述した場合にのみ結果が表示されます。たとえば、['コーヒー', 'ケーキ'] があります。検索ボックスに入力すると、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 などの結果が表示されます。