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 相关文章推荐
一个取得文件扩展名的函数
Oct 09 PHP
PHP函数utf8转gb2312编码
Dec 21 PHP
PHP通过COM使用ADODB的简单例子
Dec 31 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
PHP分页类集锦
Nov 18 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
php 的反射详解及示例代码
Aug 25 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
php json中文编码为null的解决办法
Dec 14 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 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
加强版phplib的DB类
2008/03/31 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
php 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
php错误日志简单配置方法
2016/07/11 PHP
javascript 写类方式之一
2009/07/05 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
Python实现保证只能运行一个脚本实例
2015/06/24 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
关于环保的建议书
2014/05/12 职场文书
个人担保书范文
2014/05/20 职场文书
丧事答谢词
2015/01/05 职场文书
先进工作者个人总结
2015/02/15 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL