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加密解密的代码
Jul 16 PHP
基于PHP生成静态页的实现方法
May 10 PHP
PHP程序漏洞产生的原因分析与防范方法说明
Mar 06 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
php实现微信公众号无限群发
Oct 11 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
Laravel数据库读写分离配置的方法
Oct 13 PHP
thinkphp框架类库扩展操作示例
Nov 26 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 各种应用乱码问题的解决方法
2010/05/09 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
php适配器模式介绍
2012/08/14 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
python实现用户管理系统
2018/01/10 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
应届生自我鉴定
2013/12/11 职场文书
简历中的自我评价范文
2014/02/05 职场文书
园艺师求职信
2014/04/27 职场文书
运动会拉拉队口号
2014/06/09 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
2015年工会工作总结
2015/03/30 职场文书
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android