前端之家收集整理的这篇文章主要介绍了
Yii2实现ActiveForm ajax提交,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
做项目时总会碰到ajax提交的功能,特别是在做后台提交时,一般都会用模型自动生成,这个功能的使用会比较频繁,其实只要了解了流程,操作还是挺简单的,使用起来也方便。
表单部分
PHP;">
['save'],//提交地址(*可省略*)
'method'=>'post',//提交
方法(*可省略默认POST*)
'id' => 'form-save',//设置ID
属性
'options' => [
'class' => 'form-horizontal',//设置class
属性
],'enableAjaxValidation' => true,'validationUrl' => 'validate-view',]); ?>
<?php echo $form->field($model,'company_name',['inputOptions' => ['placeholder'=>'请输入商家名称','class' => 'form-control'],'template'=>'<label for="inputCompanyName" class="col-sm-1 control-label"><span class="text-red">* 商家名称<div class="col-md-8">{input}
<label class="col-sm-3" for="inputError">{error}'])->textInput()?>
<?=Html::submitButton('保存',['class'=>'btn btn-primary']); ?>
<?php ActiveForm::end(); ?>
getRequest();
if ($request->isPost && $model->load($request->post())) {
\Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}
response->format = Response::FORMAT_JSON;
$params = Yii::$app->request->post();
$model = $this->findModel($params[id]);
if (Yii::$app->request->isPost && $model->load($params)) {
return ['success' => $model->save()];
}
else{
return ['code'=>'error'];
}
}
错误的表单信息
if (form.find('.has-error').length)
{
return false;
}
//表单提交
$.ajax({
url : form.attr('action'),type : 'post',data : form.serialize(),success: function (response){
if(response.success){
alert('保存成功');
window.location.reload();
}
},error : function (){
alert('系统
错误');
return false;
}
});
return false;
});
});