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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
PHP生成静态页面详解
Nov 19 PHP
PHP与SQL注入攻击[三]
Apr 17 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php使用base64加密解密图片示例分享
Jan 20 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
PHP中实现Bloom Filter算法
Mar 30 PHP
php加密解密字符串示例
Oct 13 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 PHP
tp5.1 框架查询表达式用法详解
May 25 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
php json相关函数用法示例
2017/03/28 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
什么是反射
2012/03/17 面试题
常见的软件开发流程有哪些
2015/11/14 面试题
学生发电厂实习自我鉴定
2013/09/22 职场文书
校园门卫岗位职责
2013/12/09 职场文书
毕业生自荐信
2013/12/14 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
2014年财政局工作总结
2014/12/09 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python