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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
表单复选框向PHP传输数据的代码
Nov 13 PHP
php 进度条实现代码
Mar 10 PHP
php adodb介绍
Mar 19 PHP
php中常用的预定义变量小结
May 09 PHP
比较strtr, str_replace和preg_replace三个函数的效率
Jun 26 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
php中memcache 基本操作实例
May 17 PHP
Yii2中如何使用modal弹窗(基本使用)
May 30 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
php中类和对象:静态属性、静态方法
Apr 09 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 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(4) php 函数 补充2
2010/02/15 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
js继承实现方法详解
2016/12/16 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python统计文章中单词出现次数实例
2020/02/27 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
英国健身专家:WIT Fitness
2021/02/09 全球购物
2014年统计工作总结
2014/11/21 职场文书
2014年教研工作总结
2014/12/06 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
使用Redis做预定库存缓存功能
2022/04/02 Redis