0

フォームに CAutoComplete フィールドを指定しましたが、クエリに従って提案されています。提案ボックスから項目を選択した後、カンマを入力して別の項目の提案に進むと、提案は正常に機能します私はそのようにコーディングしましたが、アイテムを選択すると、フィールドで選択された最初のアイテムが削除され、代わりになります。私が欲しいのは、アイテムがフィールドの入力としてそこにとどまる必要があるということです。

ここに画像の説明を入力

最初に選択した後、フィールドにはNokia 100が含まれています。その後、「、」を入力してもう一度何かを入力すると、提案が表示され、それらから選択することもできます..

ここに画像の説明を入力

新しい製品を選択すると、以前の製品が削除されます。取得方法: 入力ボックスに Nokiaa 100、Micromax...、...。これが私のコードです

<?php $this->widget('CAutoComplete', array(
                            'name'=>'ListModel[indexIds]',
                            'id'=>'input-box',
                            'attribute'=>'search',
                            'url'=> $this->createAbsoluteUrl('list/suggestions'),
                            'value'=>'',
                            'minChars'=>2,
                            'scroll'=>false,
                            'resultsClass'=>'searchAutoComplete ac_results',
                            'htmlOptions'=> array('class'=>"searchClickClear",'id'=>'select'),
                            'methodChain'=>'.result(function(){$("form#search-form").submit();})'
               )); ?>

これは入力フィールドです

public function actionSuggestions() {

        if(isset($_GET['q']) && ($keyword=trim($_GET['q']))!=='')
        {
            $what = $_GET['q'];
            $what = explode(',', $what);
            if(is_array($what))
                $what = end($what);
            $criteria = new CDbCriteria;
            $criteria->select = array("product_name");
            $criteria->condition = "product_name LIKE '%{$what}%' AND tagged = 1";
            $criteria->group = "product_name";
            $products = Production::model()->findAll($criteria);
            $result = array();

            if(count($products) > 0)
            {
                foreach($products as $p)
                    $result[] = $p->product_name;

                echo implode("\n",$result);
            }
        }
    }

提案部分です。

4

1 に答える 1

0

デフォルトの CAutoComplete は現時点ではこれを処理できませんが、CJuiAutotComplete のラッパーとして動作を拡張する拡張機能があります。これは、jQuery UI マルチタグ デモのように機能します。

あなたの質問をGoogleに入力してこれを見つけました.最初に出てきた答えはこれでした.

于 2013-02-21T07:24:03.523 に答える