作者:PHP学习网来源:https://www.viphper.com/?p=1240本文版权归作者所有,欢迎转载,但不得保留此声明征得作者同意,并在文章页面显着位置给出原文链接,否则保留追究法律责任的权利。在做项目的时候总会遇到ajax提交的功能,尤其是做后台提交的时候,一般都是模型自动生成的,这个功能用的会比较频繁。其实,只要了解流程,操作起来还是很简单的,使用起来也很方便方便。表单部分['save'],//提交地址(*可以省略*)'method'=>'post',//提交方法(*默认POST可以省略*)'id'=>'form-save',//设置ID属性'options'=>['class'=>'form-horizo??ntal',//设置class属性],'enableAjaxValidation'=>true,'validationUrl'=>'validate-view',]);?>field($model,'company_name',['inputOptions'=>['placeholder'=>'请输入公司名称','class'=>'form-control'],'template'=>'*企业名称{input}
{error}'])->textInput()?>=Html::submitButton('保存',['类'=>'btnbtn-primary']);?>其中:'enableAjaxValidation'=>true,必须设置,告诉表单使用ajax提交控制器(controller)部分控制器分为两部分,一个是验证表单的正确性,和另一个是保存验证部分publicfunctionactionValidateView(){$model=newmodel();$request=\Yii::$app->getRequest();如果($request->isPost&&$model->load($request->post())){\Yii::$app->response->format=Response::FORMAT_JSON;返回ActiveForm::validate($model);}}二、保存部分publicfunctionactionSave(){\Yii::$app->response->format=Response::FORMAT_JSON;$params=Yii::$app->request->post();$model=$this->findModel($params[id]);如果(Yii::$app->request->isPost&&$model->load($params)){return['success'=>$model->save()];}else{返回['代码'=>'错误'];}}Ajax提交来自表格$(function(){$(document).on('beforeSubmit','form#form-save',function(){varform=$(this);//返回错误的表格信息if(form.find('.has-error').length){returnfalse;}//表单提交$.ajax({url:form.attr('action'),type:'post',data:form.serialize(),success:function(response){if(response.success){alert('保存成功');window.location.reload();}},error:function(){alert('系统错误');returnfalse;}});返回假;});});特别说明,我后台使用的是Yii2adminlteFramework,具体操作过程要看试用项目,基本操作过程是一样的