У меня есть форма задачи для приложения, которое я создаю, который позволяет мне указать, какому контакту оно назначено. Я настроил зависимое выпадающее меню в Yii со следующим кодом:
echo $form->dropDownList($model,'associationType',
array('none'=>'None','contact'=>'Contact','sale'=>'Sale','account'=>'Account',
'project'=>'Project','case'=>'Case'),
array(
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('tasks/parseType'), //url to call.
//Style: CController::createUrl('currentController/methodToCall')
'update'=>'#auto_complete', //selector to update
)
));
То, что я пытаюсь сделать, - это использовать виджет CJuiAutoComplete с dropDown, указывающим, какой массив захватить. Таким образом, выпадающий список выбран для контактов, он должен получить список контактов и т. Д.
Вот что у меня есть для виджета CJui
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'name'=>'auto_select',
'source' => $names,
'options'=>array(
'minLength'=>'2',
'select'=>'js:function( event, ui ) {
$("#'.CHtml::activeId($model,'associationId').'").val(ui.item.id);
return false;
}',
),
));
Переменная $ names пока только заполнитель, но в моем методе контроллера я передаю ей кодированный в JSON массив с id и именем. Код контроллера:
public function actionParseType() {
//if(isset($_POST['TaskChild']['associationType'])){
//$type=$_POST['TaskChild']['associationType'];
$type='sale';
$sql = 'SELECT id, name FROM x2_'.$type.'s';
$cmd = Yii::app()->db->createCommand($sql);
$res = $cmd->queryAll();
echo CJSON::encode($res);
//}
}
Прямо сейчас я заставляю его использовать «Sale», но я ничего не получаю, когда вызываю метод, и мне было интересно, как я могу исправить это. Я все еще немного новичок в Yii, так что я в основном читаю вики / сообщения на форуме о том, как это делается. Спасибо за любую помощь, спасибо!