Yii2实现ActiveForm ajax提交


Posted in PHP onMay 26, 2017

做项目时总会碰到ajax提交的功能,特别是在做后台提交时,一般都会用模型自动生成,这个功能的使用会比较频繁,其实只要了解了流程,操作还是挺简单的,使用起来也方便。

表单部分

<?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(); ?>

其中:'enableAjaxValidation' => true, 必须设置,告诉表单用ajax提交

控制器(controller)部分

控制器分两部分,一部分是效验表单的正确性,另外一部分是保存

1、效验部分

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); 
  } 
}

2、保存部分

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']; 
  } 
}

Ajax提交from表单

$(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; 
  }); 
});

特别注意本人用的是Yii2 adminlte框架后台,具体操作过程试项目而定,基本操作过程都一样。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
比较全面的PHP数组的使用方法小结
Sep 23 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
Feb 06 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
PDO::errorCode讲解
Jan 28 PHP
Yii框架函数简单用法分析
Sep 09 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 PHP
Yii2选项卡的简单使用
May 26 #PHP
PHP编程获取各个时间段具体时间的方法
May 26 #PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 #PHP
PHP判断密码强度的方法详解
May 26 #PHP
thinkphp实现附件上传功能
May 26 #PHP
微信第三方登录(原生)demo【必看篇】
May 26 #PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 #PHP
You might like
中英文字符串翻转函数
2008/12/09 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
浅谈php调用python文件
2019/03/29 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
理解javascript模块化
2016/03/28 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
从零学Python之入门(五)缩进和选择
2014/05/27 Python
python定时器(Timer)用法简单实例
2015/06/04 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
python Scrapy框架原理解析
2021/01/04 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
银行实习的自我鉴定
2013/12/10 职场文书
大学活动策划书范文
2014/01/10 职场文书
家长建议怎么写
2014/05/15 职场文书
基层党员公开承诺书
2014/05/29 职场文书
爱护公物标语
2014/06/24 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL