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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
PHP编码规范-php coding standard
Mar 16 PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
php数据访问之增删改查操作
May 09 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
python抓取网页中的图片示例
2014/02/28 Python
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
深入理解Python中的内置常量
2017/05/20 Python
Python sep参数使用方法详解
2020/02/12 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
财务部出纳岗位职责
2013/12/22 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
二手车转让协议书
2015/01/29 职场文书
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技
Springboot中如何自动转JSON输出
2022/06/16 Java/Android