YII依赖下拉列表在创建时工作正常,但在更新第一个下拉列表数据即将到来但第二个下拉列表数据未显示

时间:2016-06-28 09:00:05

标签: yii

<div class="row">
            <?php echo $form->labelEx($model,'ClassId'); ?>     
            <?php 
            $School=Yii::app()->session['Schoolid'];
            echo CHtml::activeDropDownList($model,'ClassId',CHtml::listData(Classdetails::model()->findAll(array("condition"=>"classid >0 and School_Id='$School' and Status=1","order"=>"classid")),'classid','classname'),
            array(
             'empty'=>'--Select a Class--',
             'ajax' => array(
             'type'=>'POST', //request type
             'url'=>CController::createUrl('Studentmarks/Dynamiccities'), //url to call.
             'data'=>array('Classid'=>'js: $(this).val()'),         
             'update'=>'#'.CHtml::activeId($model,'pid'),   
             )));
                 echo $form->error($model,'ClassId');
                echo $form->labelEx($model,'pid');
              echo CHtml::activeDropDownList($model,'pid', array(),array('prompt'=>'-- Select a Student --')); 
             echo $form->error($model,'pid');
                ?>      
            </div>

1 个答案:

答案 0 :(得分:0)

根据指定的代码,您明确将第二个下拉列表设置为空,这就是它在更新视图中不起作用的原因。

在更新模式下,您只需使用选定的已保存值填充下拉列表中的可能值。

你可能会做这样的事情。

if($model->isNewRecord)
    echo CHtml::activeDropDownList($model,'pid', array(),array('prompt'=>'-- Select a Student --')); // create
else
    echo CHtml::activeDropDownList($model,'pid', $model->populateStudentsDate($model->ClassId));  // update

populateStudentsDate($model->ClassId)方法中,您需要根据班级选择过滤并显示学生列表。