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&amp;&amp;mysql)二
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
php学习 函数 课件
Jun 15 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
php表单处理操作
Nov 16 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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音乐采集(部分代码)
2007/02/14 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
一些实用的jQuery代码片段收集
2011/07/12 Javascript
jquery map方法使用示例
2014/04/23 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
Python输出9*9乘法表的方法
2015/05/25 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
Django Celery异步任务队列的实现
2019/07/24 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
收银出纳员岗位职责
2014/02/23 职场文书
运动会班级口号
2014/06/09 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
领导班子对照检查材料
2014/09/22 职场文书
2014年党员整改措施
2014/10/24 职场文书
财务统计员岗位职责
2015/04/14 职场文书
我是特种兵观后感
2015/06/11 职场文书
学习委员竞选稿
2015/11/20 职场文书
党员读书活动心得体会
2016/01/14 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android