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新手入门学习方法
May 08 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
php操作MongoDB类实例
Jun 17 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 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
C# Assembly类访问程序集信息
2009/06/13 PHP
php判断变量类型常用方法
2012/04/24 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
Python单元测试框架unittest简明使用实例
2015/04/13 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
80后职场人的职业生涯规划
2014/03/08 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
产品包装策划方案
2014/05/18 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书