1

オートコンプリートは sourceUrl からのデータを表示しません。

コントローラ

public function actionTestAutoComplete() {
        $r = array(
                array("label"=>"Test 1", "value"=>"Test 1") ,
                array("label"=>"Test 2", "value"=>"Test 2") ,
                array("label"=>"Test 3", "value"=>"Test 3") ,
                array("label"=>"Test 4", "value"=>"Test 4") ,
            );
        echo CJSON::encode($r);
    }

意見

 $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
                'name' => 'test_autocomplete',
                'source'=>$this->createUrl("testAutocomplete"),
                'value' => "",
                'options' => array(
                    'minChars'=>1,
                    'autoFill'=>false,
                    'focus'=> 'js:function( event, ui ) {
                        $( "#test_autocomplete" ).val( ui.item.label );
                        return false;
                    }',
                    'select'=>'js:function( event, ui ) {
                        return false;
                    }'
                ),
                'htmlOptions'=>array( 'autocomplete'=>'off'),
            ));

アクション testAutocomplete はデバッグで機能しますが、オートコンプリートは ajax からのデータを表示しません。

以下のコードは正常に動作します。

$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
                'name' => 'test_autocomplete',
                'source'=>array(
                             array('label'=>'test 1', 'value'=>'teste 1'),
                             array('label'=>'test 2', 'value'=>'teste 2'),
                             array('label'=>'test 3', 'value'=>'teste 3'),
                          ),
                'value' => "",
                'options' => array(
                    'minChars'=>1,
                    'autoFill'=>false,
                    'focus'=> 'js:function( event, ui ) {
                        $( "#test_autocomplete" ).val( ui.item.label );
                        return false;
                    }',
                    'select'=>'js:function( event, ui ) {
                        return false;
                    }'
                ),
                'htmlOptions'=>array( 'autocomplete'=>'off'),
            ));

助けてください

ありがとう

4

2 に答える 2

0

source オプションの代わりに sourceURL を使用してみてください。

于 2013-05-12T12:34:15.343 に答える
0

これを試して。私はこれをテストしましたが、正常に動作します。

ビュー側のコードで...

<?php $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
                'name' => 'test_autocomplete',
                'source'=>$this->createUrl('Controller class name here/AutoCompleteLookup'), // always define the correct path in Url..
                'value' => "",
                'options' => array(
                    'minChars'=>1,
                    'autoFill'=>false,
                    'focus'=> 'js:function( event, ui ) {
                        $( "#test_autocomplete" ).val( ui.item.label );
                        return false;
                    }',
                    'select'=>'js:function( event, ui ) {
                        return false;
                    }'
                ),
                'htmlOptions'=>array( 'autocomplete'=>'off'),
            )); ?>

コードの残りの部分は問題ありませんが、修正したいくつかの間違いがあります。

于 2012-06-05T08:14:09.187 に答える