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 相关文章推荐
Session保存到数据库的php类分享
Oct 24 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
php生成二维码的几种方式整理及使用实例
Jun 03 PHP
php 如何获取数组第一个值
Aug 06 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 PHP
thinkPHP模板引擎用法示例
Dec 08 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 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实现查询两个数组中不同元素的方法
2016/02/23 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
详解python中的文件与目录操作
2017/07/11 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
python 实现生成均匀分布的点
2019/12/05 Python
利用python实现逐步回归
2020/02/24 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
资源工程专业毕业生求职信
2014/02/27 职场文书
情人节活动总结范文
2015/02/05 职场文书
Redis实现一个账号只能登录一个设备
2022/04/19 Redis