【问题标题】:Yii CJuiAutoComplete data from Ajax request does not display list choiceYii CJuiAutoComplete 来自 Ajax 请求的数据不显示列表选择
【发布时间】:2014-01-03 16:43:02
【问题描述】:

自动完成不显示来自 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'),
            ));

拜托,我需要帮助,

谢谢

【问题讨论】:

  • 可能有任何 javascript/ajax 错误吗?
  • 是的,检查 ajax 错误,也许你没有在 accessrules 中添加操作

标签: autocomplete yii


【解决方案1】:

尝试使用 sourceURL 代替源选项。

【讨论】:

    【解决方案2】:

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

    查看端代码...

    <?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'),
                )); ?>
    

    你的代码的其余部分没问题,但这里有一些我已经修复的错误。

    【讨论】:

    • createUrl 也只适用于 actionId,所以它不应该是 url 问题
    猜你喜欢
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2013-12-18
    • 2013-09-17
    相关资源
    最近更新 更多