2017-06-19 109 views
1

我在索引中有两个dropDownlist,当我选择提交按钮时,它将在控制器中得到动作,并且它执行一些操作并再次使用gridview渲染索引,但是所选dropDownList变为空白,我怎么能在dropDownllist中设置默认?如何在dropDownlist中显示默认值

任何建议应appreciatable ...... 这是我的看法

<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?

+0

那些下拉列表关联到'$ model',因此他们有VALU e他们各自的模型领域有 – gmc

+0

我只获得单一的价值所有,,如何定义我的选项 – Midlaj

+0

assingn的默认值是关系到模型..请更新您的问题,并添加您的相关控制器/行动代码 – scaisEdge

回答

1

如果您正在使用一个ActiveRecord然后controllerAction你应该分配给$模型 - > 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) 
+0

你的意思是我想要在控制器硬编码,如果我harcode hows dropDownlList看起来像? – Midlaj

+0

答案更新...如果第一种情况下,你应该在控制器之前分配给前.. – scaisEdge

+0

maaan非常感谢你....经过很长一段时间,其工作正常.... – Midlaj