在Yii中获取CAutoComplete中所选值的ID

时间:2014-04-08 06:09:07

标签: php yii autocomplete yii-extensions yii-components

我正在使用CAutoComplete来选择多个逗号分隔值。现在我只能传递选定的值,我还需要在提交表单时传递所选值的id。 能否请你帮我发送id作为数组或逗号分隔提交。

在我的表格中我正在使用:

   <?php
        $this->widget('CAutoComplete', array(
                        'model' => $model,
                        'attribute' => 'skills',
                        'url' => array('serviceRequest/Suggest'),
                        'multiple' => true,
                        'htmlOptions' => array('size' => 34),
                    ));
    ?>

控制器:

   public function actionSuggest()
    {
        if (isset($_GET['q']) && ($keyword = trim($_GET['q'])) !== '')
        {
            $tags = Skills::model()->suggest($keyword);
            if ($tags !== array())
                echo implode("\n", $tags);
        }
    }

型号:

 public function suggest($keyword,$limit=20)
    {
        $tags=$this->findAll(array(
            'condition'=>'skills LIKE :keyword',
        //  'order'=>'Name',
            'limit'=>$limit,
            'params'=>array(
                ':keyword'=>'%'.strtr($keyword,array('%'=>'\%', '_'=>'\_', '\\'=>'\\\\')).'%',
            ),
        ));
        $names=array();
        foreach($tags as $tag)
            $names[]=$tag->skills;
        return $names;
    }

1 个答案:

答案 0 :(得分:0)

您可以通过包含选项数组来传递JUI自动完成小部件支持的任何选项:

$this->widget('CAutoComplete', array(
    // your other settings here
    'options' => array(
        'select' => new CJavaScriptExpression('function(e, ui) { alert("hi"); }')
    ),
));

请阅读此处了解更多信息:http://www.yiiframework.com/doc/api/1.1/CAutoComplete