我是Yii的新手。我正在尝试使用ajax生成Dependent下拉字段我有一个视图文件名swap.php,其中包含以下代码
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
'id'=>'projects-form',
'type'=>'horizontal',
'enableAjaxValidation'=>false,
'enableClientValidation'=>true,
'htmlOptions'=>array(
'enctype'=>"multipart/form-data"
)
)); ?>
<?php echo $form->dropDownListRow($model, 'salesperson', $data,array('labelOptions'=>array('label'=>'Select Sales Person'),'empty'=>array(''=>'Choose Sales Person'), 'class'=>'span3','maxlength'=>5,
'ajax'=>array(
'type'=>'POST',
'url'=>$this->createUrl('getUsers'),
'update'=>'#SalesPersonsAssignLog_users'
)
));
?>
<div id="SalesPersonsAssignLog_users">
</div>
<?php $this->endWidget(); ?>
在相应的控制器中,我有以下功能
public function actionGetUsers()
{
$result = $_POST['SalesPersonsAssignLog'];
$salesPersonId = $result['salesperson'];
$model = new UsersSalesPersons;
$result = $model->getAssignedCompanies($salesPersonId);
$resultArray = array();
foreach($result as $value)
{
$id = $value->company->user_id;
$name = $value->company->user_company;
$resultArray[$id] = $name;
}
$this->renderPartial('_ajaxUsers',array('data'=>$resultArray,'model'=>$model));
}
__ajaxUsers.php
I需要使用TbActive form
、创建dropdownListRow
<?php echo $form->dropDownListRow($model, 'users', $data,array('labelOptions'=>array('label'=>'Sales Person'),'empty'=>array(''=>'Choose Sales Person'), 'class'=>'span3','maxlength'=>5)); ?>
收到致命错误调用非对象上的成员函数dropDownListRow()
由于该页面中没有TbActiveForm
,那么我如何在ajax上创建一个dropdownListRow
调用
您必须将$form初始化为TbActiveForm小部件,并为其提供TbActiveForm文件的路径
$form = $this->beginWidget( 'ext.bootstrap.widgets.TbActiveForm', array(
'id' => 'test-form'
) );
不要忘记结束小部件
$this->endWidget();