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 相关文章推荐
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
Oct 31 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
基于PHP生成静态页的实现方法
May 10 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
php和vue配合使用技巧和方法
May 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根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
Yii2单元测试用法示例
2016/11/12 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
浅析javascript的return语句
2015/12/15 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
Python之PyUnit单元测试实例
2014/10/11 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
python先序遍历二叉树问题
2017/11/10 Python
Django rest framework实现分页的示例
2018/05/24 Python
python增加图像对比度的方法
2019/07/12 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
美国性感内衣店:Yandy
2018/06/12 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
节能减排倡议书
2014/04/15 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js