如题 我们使用模态弹出框+ajax提交表单 首先我们把index视图的create按钮添加data-toggle 和 data-target。

代码如下:

<?php 
echo Html::a("添加请假单", ["create"], ["class" => "btn btn-success","data-toggle"=>"modal","data-target"=>"#ajax"]) 
?>

在index视图添加如下代码 来显示模态弹出框:

<div class="modal bs-example-modal-lg" id="ajax">

 <div class="modal-dialog">
 
 <div class="modal-content width_reset" id="tmpl-modal-output-render"> </div>
 
 </div>

</div>

修改后的效果如下

然后我们修改控制器中的create方法,把render改为renderAjax即可

   return $this->renderAjax("create", [
    "model" => $model,
   ]); 
   

如果想添加表单验证我们需要修改views 里的 _form 添加上id

<?php $form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"],"id"=>"leave-form-self"]) ?>
指向 你的models 在rules添加上验证规则

 public function rules()
 {
  return [
   [["t_leave_date", "t_days", "t_reason", "t_nickname","t_leave_enddate"], "required"],
   [["t_leave_date", "t_leave_enddate"], "safe"],
   [["t_days"], "number"],
   [["t_reason"], "string"],
   [["type", "add_time", "uid", "update_time", "status", "is_shen"], "integer"],
   [["t_pickup", "t_nickname", "t_pass"], "string", "max" => 20],
   [["t_img", "reviewer_user", "audit_user"], "string", "max" => 255]
  ];
 } 

效果如下

这样就实现了ajax提交表单