0

当从“等级”下拉列表中选择值时,我正在使用相关下拉列表来获取主题下拉列表的值。它工作正常。但问题是当成绩下拉列表中只有一个值时,主题下拉列表不会更新。

这是我的代码:-

Grade DropDown---------- ($data 由成绩组成)

    <?php echo CHtml::dropDownList('myDropDown1','',$data,array( 
              'id'=>'gr', 
              'empty' => '(Select Grade)',
              'style'=>'width:200px',   
              'ajax' =>
              array(
              'type'=>'POST', //request type
              'url'=>CController::createUrl('sub'), //action to call
              'update'=>'#cls', // which HTML element to update
             )
             )); ?>  

主题下拉列表(取决于等级下拉列表)------------

            <?php echo CHtml::label('Subject',''); ?>
    <?php echo CHtml::dropDownList('myDropDown3','',array(),array(
            'id'=>'sub',
            'prompt'=> 'Please select a class', 'style'=>'width:150px',
           'style'=>'width:200px',
            )); ?>
            <?php //echo $form->error($model,'sub_id'); ?>

在控制器中--------

    public function actionClass()
    {
     $grd = $_POST['myDropDown1']; 
     $c_id = TbClass::model()->findAll('id=:id',
                    array(':id'=>$grd,));
     $data3 = CHtml::listData($c_id,'id','grade');
     $grd2 = array_shift($data3);

     $sub1 = TbClass::model()->findAll('grade=:grade',
        array(
        ':grade'=>$grd2,
         )); 
     $data4 = CHtml::listData($sub1,'id','class');

     foreach($data4 as $value=>$name)
     {
      echo CHtml::tag('option',
               array('value'=>$value),CHtml::encode($name),true);
     }

}

这段代码工作正常。问题是当等级在下拉列表中只有一个值时,无法更新主题下拉列表。

4

1 回答 1

0

我认为您的问题出在 array_shift 中,

你检查过 $grd2 的值吗?

于 2013-09-15T13:16:26.677 回答