来自Ajax请求的Yii CJuiAutoComplete数据不显示列表选择

时间:2012-06-05 07:48:43

标签: autocomplete yii

自动填充功能不会显示来自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'),
            ));

请,我需要帮助,

由于

2 个答案:

答案 0 :(得分: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'),
            )); ?>

其余的代码都没问题,但是我修复了一些错误。

答案 1 :(得分:0)

尝试使用sourceURL代替源选项。