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

尝试这个。我已经对此进行了测试,并且效果很好。

在查看侧代码...

<?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 回答
0

尝试使用 sourceURL 代替 source 选项。

于 2013-05-12T12:34:15.343 回答