E ai galera,
estou com problemas no CJuiAutoComplete na minha aplicação. o que estou percebendo é que o action do source não está sendo chamado.
_form:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'avulsa-form',
'enableAjaxValidation'=>true, //<---- isto tem que ser true mesmo?
)); ?>
...
<div class="row">
<?php echo $form->labelEx($model,'fkHospede'); ?>
<?php
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'model' => $model,
'attribute' => 'fkHospede',
'source' => $this->createUrl('avulsa/autocompleteHospede'),
'options' => array(
'minLength' => '2',
'showAnim' => 'fold'
),
'htmlOptions' => array(
)
));
?>
</div>
Controller:
...
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update', 'autocompleteHospede'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
...
public function actionAutocompleteHospede()
{
$res = array();
if (isset($_GET['term'])) {
$qtxt ="SELECT codigo, nome FROM hospede WHERE nome LIKE :nome";
$command =Yii::app()->db->createCommand($qtxt);
$command->bindParam(":nome",'%'.$_GET['term'].'%', PDO::PARAM_STR);
$res =$command->queryColumn();
}
echo CJSON::encode($res);
Yii::app()->end();
}
Já tentei seguir por aqui, e aqui. E nenhum deu certo.
Porém quando uso o meu _form assim
_form:
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'model' => $model,
'attribute' => 'fkHospede',
'source' => array('teste1','teste2','teste3','teste4','teste5'),
'options' => array(
'minLength' => '2',
'showAnim' => 'fold'
),
'htmlOptions' => array(
'style' => 'height:15px;'
)
));
ele funciona perfeitamente. Mais o que eu quero são valores obtidos do banco de dados.