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 相关文章推荐
使用sockets:从新闻组中获取文章(一)
Oct 09 PHP
PHP 一个页面执行时间类代码
Mar 05 PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
针对PHP开发安全问题的相关总结
Mar 22 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 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图片上传程序
2008/03/27 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
js Map List 遍历使用示例
2013/07/10 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
比较基础的php面试题及答案-填空题
2014/04/26 面试题
学生干部学习的自我评价
2014/02/18 职场文书
会走路的树教学反思
2014/02/20 职场文书
爽歪歪广告词
2014/03/20 职场文书
禁毒宣传标语
2014/06/19 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
代办社保委托书范文
2014/10/06 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
Java中的随机数Random
2022/03/17 Java/Android