只是在yii中实现依赖的dropDownList。 它的观点部分是 -
echo $form->dropDownList($model, 'standard', $listStandard, array(
'empty' => 'Select standard',
'ajax'=>
array(
'type'=>'POST',
'url'=>CController::createUrl('scholarship/updateDivision'),
'update'=>'#updatedDivision',
//'data'=>array('std'=>'js:this.value'),
)
));
<?php echo CHtml::dropDownList('updatedDivision','',array('1'=>'1'),array()); ?>
其控制器部分
public function actionUpdateDivision(){
echo CHtml::dropDownList('updatedDivision','',array('1'=>'hello','2'=>'2'),array());
}
此处请求未传递给controller.can您在此代码中发现任何问题? 提前谢谢..
答案 0 :(得分:1)
根据this post,控制器动作必须是smth。如下:
$data=Location::model()->findAll('parent_id=:parent_id',
array(':parent_id'=>(int) $_POST['country_id']));
$data=CHtml::listData($data,'id','name');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}
显然,当您使用来自控制器的id='updatedDivision'
更新视图id='updatedDivision'
中的DOM元素时:
echo CHtml :: dropDownList(&#39; updatedDivision&#39;,&#39;&#39;,array(&#39; 1&#39; =&gt;&#39; hello&#39;,& #39; 2&#39; = GT;&#39; 2&#39),阵列());
它不会按预期工作。
在控制器/操作中尝试此操作:
foreach(array('1'=>'hello','2'=>'2') as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}
如果正确形成了ajax XHR并且发回了响应,也请使用网络工具(F12,Ctrl + Shift + I)进行检查。