在我的门票表格中,我有一个员工的dropDownList,在员工模型中,我有employee_status,'可用','不可用'
如果我将员工的状态更改为“不可用”,我将如何从故障单表单中的dropDownList自动删除它?
来自故障单的员工下拉列表
<?= $form->field($model, 'employee_id')->dropDownlist(
ArrayHelper::map(Employee::find()->all(), 'id', 'employee_name'),
[
'prompt' => 'Select Employee ID',
'style' => 'width:200px'
]); ?>
答案 0 :(得分:1)
您需要根据employee_status.write为视图文件中的代码创建一个依赖的下拉列表,以创建依赖下拉列表: -
use yii\helpers\ArrayHelper;
echo $form->field($model, 'employee_status')->dropDownList([0=>'Available' , 1 => 'Not Available'],
[
'prompt' => 'Select Employee Status',
'style' => 'width:200px',
'onchange'=>'$.post( "'.Yii::$app->urlManager->createUrl('site/get-employee?status=').'"+$(this).val(), function( data ) {
$( "select#employee-employee_id" ).html( data );
});']);
<?= $form->field($model, 'employee_id')->dropDownlist(
ArrayHelper::map(Employee::find()->all(), 'id', 'employee_name'),
[
'prompt' => 'Select Employee ID',
'style' => 'width:200px'
]); ?>
现在为获取子下拉列表数据编写一个控制器操作。控制器动作代码如下: - SiteController.php
public function actionGetEmployee($status)
{
$employee= \common\models\Employee::find()
->where(['status' => $status])
->orderBy('id DESC')
->all();
if (!empty($employee)) {
foreach($employee as $employee) {
echo "<option value='".$employee->id."'>".$employee->name."</option>";
}
} else {
echo "<option>-</option>";
}
}
注意:根据您的代码更改模型命名空间。
答案 1 :(得分:0)
使用您给定的条件执行查找查询。
由于我们只想在列表中找到可用的员工,我们可以写:
Employee::find('status=:status', [
':status' => 'Available'
])->all();
答案 2 :(得分:0)
我终于明白了
<?= $form->field($model, 'employee_id')->dropDownlist(
ArrayHelper::map(Employee::find()->where(['status' => 'Available'])->all(), 'id', 'employee_name'),
[
'prompt' => 'Select Employee ID',
'style' => 'width:200px'
]); ?>