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 相关文章推荐
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
Dec 22 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
php微信开发自定义菜单
Aug 27 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP代码加密的方法总结
Mar 13 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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
php下MYSQL limit的优化
2008/01/10 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
eclipse php wamp配置教程
2016/06/30 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
Python交换变量
2008/09/06 Python
Python制作动态字符图的实例
2019/01/27 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
Python中Selenium库使用教程详解
2020/07/23 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
python中实现栈的三种方法
2020/12/19 Python
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
律师授权委托书范本
2014/10/07 职场文书
干部作风建设心得体会
2014/10/22 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
Win11 BitLocker 驱动器加密
2022/04/19 数码科技