【问题标题】:how to display default value in dropDownlist如何在下拉列表中显示默认值
【发布时间】:2017-06-19 08:30:41
【问题描述】:

我在索引中有两个dropDownlist,当我选择提交按钮时,它将在控制器中执行一些操作并再次使用gridview渲染索引,但是Selected dropDownList变为空白,我该如何设置默认值下拉列表??

任何建议都应该受到赞赏... 这是我的看法

    <div class="col-sm-12" align="center">
                <?= $form->field($model, 'fk_int_payroll_month')->dropDownList(
                    ArrayHelper::map(TblPayrollMonth::find()->all(), 'pk_int_payroll_month_id','vchr_month'),
                ['prompt'=> 'Select...'])
                ?> 
</div>


<div class="col-sm-12" align="center">
            <?= $form->field($model, 'fk_int_payroll_year')->dropDownList(
                ArrayHelper::map(TblPayrollYear::find()->all(), 'pk_int_payroll_year_id','year'),
                ['options' => [isset($_POST['fk_int_payroll_year'])?'fk_int_payroll_year':'' => ['Selected'=>true]]],
            ['prompt'=> 'Seect...'])
            ?>
        </div>

这是我的控制器

public function actionDisplay()
    {
        $model      =   new TblPayroll();
        if(Yii::$app->request->post()!=null) 
        {
            $data = Yii::$app->request->post();
            // var_dump($data);
            // die;
            $month = $data['TblPayroll']['fk_int_payroll_month'];
            $year = $data['TblPayroll']['fk_int_payroll_year'];

            /* Be careful with this! */
            $dataProviderSearch = new ActiveDataProvider
            ([
                'query' => TblPayroll::find()->where(['fk_int_payroll_month'=>$month, 'fk_int_payroll_year'=> $year]),
                'pagination' => ['pageSize' => 5],
            ]);


            if($dataProviderSearch)
            {
                return $this->render('index', [
                'dataProviderSearch' => $dataProviderSearch,
                'model' => $model,
                ]);
            }
        }
            else{
                 return $this->render('index', ['model' => $model]);

}

当我选择下拉列表时,它会得到 actionDisplay,并找到数据提供者,然后再次渲染到索引,这样我如何在 dropDownlist 中显示默认选择值?

【问题讨论】:

  • 这些下拉菜单与$model 相关联,因此它们具有各自模型字段的值
  • 我只得到一个值,如何定义我的选项
  • assingn 默认值与模型有关..请更新您的问题并添加您的相关控制器/操作代码
  • @scaisEdge 请检查一下

标签: yii2


【解决方案1】:

如果您使用的是 activeRecord,那么在 controllerAction 中您应该为 $model->your_fiedl 分配您需要的默认值

     else{
             $model->fk_int_payroll_month  = 3
             return $this->render('index', ['model' => $model]);

         }

如果你不使用活动记录,你可以使用

->dropDownList($yourlist ,$selection) 

例如

 ->dropDownList(ArrayHelper::map(TblPayrollMonth::find()->all() ,3) 

【讨论】:

  • 你的意思是我想在控制器中硬编码,如果我对 dropDownlList 的外观进行硬编码?
  • 答案已更新...如果您应该在渲染之前在控制器中分配第一种情况..
  • @Midlaj 谢谢.. 特别是热情...祝你工作顺利
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多