依赖下拉列表中的ajax yii中的列表不起作用

时间:2014-12-08 05:23:11

标签: php yii

只是在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您在此代码中发现任何问题? 提前谢谢..

1 个答案:

答案 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)进行检查。