《PHP編程:Yii2實現ActiveForm ajax提交》要點:
本文介紹了PHP編程:Yii2實現ActiveForm ajax提交,希望對您有用。如果有疑問,可以聯系我們。
相關主題:YII框架
PHP教程做項目時總會碰到ajax提交的功能,特別是在做后臺提交時,一般都會用模型自動生成,這個功能的使用會比較頻繁,其實只要了解了流程,操作還是挺簡單的,使用起來也方便.
PHP教程表單部分
PHP教程
<?php $form = ActiveForm::begin([
'action' => ['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">*</span> 商家名稱</label><div class="col-md-8">{input}</div><label class="col-sm-3" for="inputError">{error}</label>'])->textInput()?>
<?=Html::submitButton('保存',['class'=>'btn btn-primary']); ?>
<?php ActiveForm::end(); ?>
PHP教程其中:'enableAjaxValidation' => true, 必須設置,告訴表單用ajax提交
PHP教程控制器(controller)部分
PHP教程控制器分兩部分,一部分是效驗表單的正確性,另外一部分是保存
PHP教程1、效驗部分
PHP教程
public function actionValidateView()
{
$model = new model();
$request = \Yii::$app->getRequest();
if ($request->isPost && $model->load($request->post())) {
\Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}
PHP教程2、保存部分
PHP教程
public function actionSave()
{
\Yii::$app->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'];
}
}
PHP教程Ajax提交from表單
PHP教程
$(function(){
$(document).on('beforeSubmit', 'form#form-save', function () {
var form = $(this);
//返回錯誤的表單信息
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;
});
});
PHP教程特別注意本人用的是Yii2 adminlte框架后臺,具體操作過程試項目而定,基本操作過程都一樣.
PHP教程以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持維易PHP.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/726.html