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 相关文章推荐
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
PHP中source #N问题的解决方法
Jan 27 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
php实现模拟post请求用法实例
Jul 11 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
Symfony2实现在controller中获取url的方法
Mar 18 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
PHP分享图片的生成方法
Apr 25 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 PHP
PHP7 其他修改
Mar 09 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的explode和implode的使用说明
2011/07/17 PHP
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
python 字符串只保留汉字的方法
2018/11/16 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
python使用配置文件过程详解
2019/12/28 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
Linux的主要特性
2014/10/06 面试题
计算机操作自荐信
2013/12/07 职场文书
项目施工员岗位职责
2014/03/09 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
英文导游词
2015/02/13 职场文书
2015年话务员工作总结
2015/04/29 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
单位工作证明范本
2015/06/15 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
Python 文字识别
2022/05/11 Python