Php 依依

Php 依依,php,drop-down-menu,yii,Php,Drop Down Menu,Yii,试着填满桌子。第一个表中有两个相关字段-科室,第二个表中有两个相关字段-医生。我还从两个不同的表中获取了这些字段的数据。事实上,当我想在第一个dropDownList中选择科室时,在第二个dropDownList中,我只需要选择这个科室的医生。我的代码:_form.php <div class="row"> <?php echo $form->labelEx($model,'deps_id'); ?> <?php echo $form->

试着填满桌子。第一个表中有两个相关字段-科室,第二个表中有两个相关字段-医生。我还从两个不同的表中获取了这些字段的数据。事实上,当我想在第一个dropDownList中选择科室时,在第二个dropDownList中,我只需要选择这个科室的医生。我的代码:_form.php

<div class="row">
    <?php echo $form->labelEx($model,'deps_id'); ?>
    <?php echo $form->dropDownList($model,'deps_id', CHtml::listData(Deps::model()->findAll(), 'id','department'),
          array(
          'prompt' => 'Choose department',
          'value' => '0',
          'ajax'  => array(
          'type'  => 'POST',
          'url' => CController::createUrl('/mednotes/selectstaff'),
          'update' => '#Mednotes_selectstaffid',   //selector to update value
          'data' => array('deps_id'=>'js:this.value'),
          )      
          )
        );
    ?>
    <?php echo $form->error($model,'deps_id'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'staff_id'); ?>
    <?php echo $form->dropDownList($model, 'staff_id', array('empty'=>'Choose doctor'), CHtml::listData(Staff::model()->findAll(), 'id', 'fullname' )); ?>
    <?php echo $form->error($model,'staff_id'); ?>
</div>
它不起作用。我在firebug-500内部服务器错误中也有这个错误 我真的需要帮助。告诉我我做错了什么。谢谢。

首先:要获取帖子和参数,最好使用Yii::app->request:

第二:如果你想让你的链接在多台机器上工作,你需要确保总是使用合适的外壳。我建议您将action重命名为actionSelectstaff。否则,请检查CUrlManager::区分大小写的值

第三步:在actionSelectStaff操作中,您尝试使用deps_id字段获取模型:

此外,您还可以使用id和department字段获取listData:


员工模型中是否同时表示部门和部门id字段?这很奇怪。

什么是服务器错误?检查你的服务器apache?日志。是的,阿帕奇。检查日志文件,2个错误,都是sql查询失败。谢谢,但问题已经解决。在我的行动中,这是一个有价值的错误。
public function actionSelectStaff()
    {
    $giatUnit = (!empty($_POST['deps_id'])) ? $_POST['deps_id']: '0';

            $data=Staff::model()->findAll('deps_id=:deps_id',
                            array(':deps_id'=>$giatUnit));


            $data=CHtml::listData($data,'id','department');
            foreach($data as $value=>$department)
            {
            echo CHtml::tag('option',array('value'=>$value),CHtml::encode($department),true);
            }
    } 
$giatUnit = Yii::app()->request->getParam('deps_id', '0');
$data=Staff::model()->findAll('deps_id=:deps_id', array(':deps_id'=>$giatUnit));
$data=CHtml::listData($data,'id','department');