Yii2表单事件之Ajax提交实现方法


Posted in PHP onMay 04, 2017

本文实例讲述了Yii2表单事件之Ajax提交实现方法。分享给大家供大家参考,具体如下:

前言

Yii2 现在使用 JS 都必须要注册代码了。

要实现 Ajax 提交,有两种方法。一是直接在 ActiveForm 调用 beforeSubmit 参数,但是个人认为这样没有很好的把 JS 和 HTML 分开,所以我们这篇文章主要介绍第二种方法 - 外部写 JS 方法。

表单部分

<?php $form = ActiveForm::begin([
  'id'   => $model->formName(),
  'action' => ['/apitools/default/index']
]); ?>

Ajax

<?php
$js = <<<JS
// get the form id and set the event
$('form#{$model->formName()}').on('beforeSubmit', function(e) {
  var \$form = $(this);
  // do whatever here, see the parameter \$form? is a jQuery Element to your form
}).on('submit', function(e){
  e.preventDefault();
});
JS;
$this->registerJs($js);

如果你使用了 JsBlock,你还可以这样写:

<?php JsBlock::begin() ?>
  <script>
    $(function () {
      jQuery('form#apitool').on('beforeSubmit', function (e) {
        var $form = $(this);
        $.ajax({
          url: $form.attr('action'),
          type: 'post',
          data: $form.serialize(),
          success: function (data) {
            // do something
          }
        });
      }).on('submit', function (e) {
        e.preventDefault();
      });
  </script>
<?php JsBlock::end() ?>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
php加密解密实用类分享
Jan 07 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
浅谈php自定义错误日志
Feb 13 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
php使用imagecopymerge()函数创建半透明水印
Jan 25 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 PHP
PHP经典实用正则表达式小结
May 04 #PHP
PHP实现的简单异常处理类示例
May 04 #PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 #PHP
PHP 无限级分类
May 04 #PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 #PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 #PHP
Laravel5中Cookie的使用详解
May 03 #PHP
You might like
PHP入门速成(2)
2006/10/09 PHP
PHP图片水印类的封装
2017/07/06 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
Python中关键字is与==的区别简述
2014/07/31 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Python3读写ini配置文件的示例
2020/11/06 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
保安的辞职报告怎么写
2014/01/20 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
个人工作表现评语
2014/04/30 职场文书
岗位说明书怎么写
2014/07/30 职场文书
国庆促销活动总结
2014/08/29 职场文书
岁月神偷观后感
2015/06/11 职场文书
昆虫记读书笔记
2015/06/26 职场文书
《植树问题》教学反思
2016/03/03 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python