首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2 -从dropDownList中删除项目

Yii2 -从dropDownList中删除项目
EN

Stack Overflow用户
提问于 2017-12-14 00:14:48
回答 3查看 666关注 0票数 0

在我的工单表单中,我有一个员工的dropDownList,在员工模型中,我有employee_status,它是“可用”和“不可用”。

如果我将该员工的状态更改为“不可用”,我如何将其从dropDownList in Ticket表单中自动删除?

工单中的员工下拉列表

代码语言:javascript
复制
<?= $form->field($model, 'employee_id')->dropDownlist(
                 ArrayHelper::map(Employee::find()->all(), 'id', 'employee_name'),
                 [
                  'prompt' => 'Select Employee ID',
                  'style' => 'width:200px'
          ]); ?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-14 01:53:58

我终于明白了

代码语言:javascript
复制
<?= $form->field($model, 'employee_id')->dropDownlist(
                       ArrayHelper::map(Employee::find()->where(['status' => 'Available'])->all(), 'id', 'employee_name'),
                       [
                        'prompt' => 'Select Employee ID',
                        'style' => 'width:200px'
                      ]); ?>
票数 0
EN

Stack Overflow用户

发布于 2017-12-14 20:57:13

您需要根据视图文件中的以下代码为get employee list创建一个dependent dropdown,用于创建dependent dropdown :-

代码语言:javascript
复制
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'
      ]); ?>

现在为get data for child dropdown编写一个控制器操作。控制器动作代码如下:- SiteController.php

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2017-12-14 00:40:16

使用您指定的条件执行查找查询。

因为我们只希望列表中有可用的员工,所以我们可以这样写:

代码语言:javascript
复制
Employee::find('status=:status', [
    ':status' => 'Available'
])->all();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47797640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档