PHP使用HTML5 FormData对象提交表单操作示例


Posted in PHP onJuly 02, 2019

本文实例讲述了PHP使用HTML5 FormData对象提交表单操作。分享给大家供大家参考,具体如下:

这是HTML5中新增的一个Api,他能以表单对象作为参数,自动的把表单的数据打包,当ajax发送数据时,发送这个FormData对象,以达到发送表单数据的目的。

创建:

参数是一个form节点对象

var fm = document.getElementById('formid');
var fd = new FormData(fm);

优点:

(1)在以往的ajax做post请求时,当提交的数据比较多时,需要拼接请求的字符串,如:k1=v1&k2=v2...,使用FormData对象时不需要这样,可以节省工作量,也防止人为拼写错误。

(2)FormData对象不仅可以读取表单的数据,也可以自行追加数据

fd.append(name,value);

案例:

提交表单

效果图:

PHP使用HTML5 FormData对象提交表单操作示例

文件结构图:

PHP使用HTML5 FormData对象提交表单操作示例

10-formdata.html文件:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>FormData使用</title>
  <link rel="stylesheet" href="">
</head>
<script>
  /**
   * FromData:表单数据对象
   * 这是HTML5中新增的一个Api
   * 他能以表单对象作为参数,自动的把表单的数据打包
   * 当ajax发送数据时,发送这个formData
   * 达到发送表单内数据的目的
   */
  function send(){
    var fm = document.getElementById('tform');
    var fd = new FormData(fm);//创建FormData对象
    var xhr = new XMLHttpRequest();//创建xhr对象
    xhr.open('POST','10-formdata.php',true);//配置请求参数
    //设置状态回调函数
    xhr.onreadystatechange = function (){
      if(this.readyState == 4 && this.status == 200){
        document.getElementById('debug').innerHTML = this.responseText;
      }
    }
    //说明formdata对象不仅可以读取表单的数据,也可以自行追加数据
    fd.append('Single',false);
    xhr.send(fd);//发送请求
  }
</script>
<body>
  <form id="tform">
    用户名:<input type="text" name="username"/><br/>
    年龄:<input type="text" name="age"/><br/>
    邮箱:<input type="text" name="email"/><br/>
    性别:<input type="text" name="sex"/><br/>
    <input type="button" value="ajax发送" onclick="send();"/>
  </form>
  <div id="debug"></div>
</body>
</html>

10-formdata.php文件:

<?php
/**
 * 使用formData提交表单
 * @author webbc
 */
print_r($_POST);
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
Jan 27 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
PHP程序员必须知道的两种日志实例分析
May 14 PHP
PHP实现带进度条的Ajax文件上传功能示例
Jul 02 #PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 #PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 #PHP
PHP大文件切割上传功能实例分析
Jul 01 #PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 #PHP
PHP封装cURL工具类与应用示例
Jul 01 #PHP
PHP session垃圾回收机制实例分析
Jun 28 #PHP
You might like
php 破解防盗链图片函数
2008/12/09 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
python2.7实现爬虫网页数据
2018/05/25 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
奶茶专卖店创业计划书
2014/01/18 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
现场施工员岗位职责
2014/03/10 职场文书
高中生操行评语大全
2014/04/25 职场文书
工作岗位说明书模板
2014/05/09 职场文书
留学生求职信
2014/06/03 职场文书
南极大冒险观后感
2015/06/05 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技