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出错界面
Oct 09 PHP
我的论坛源代码(九)
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
php 文件上传实例代码
Apr 19 PHP
php一次性删除前台checkbox多选内容的方法
Sep 22 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
解决php写入数据库乱码的问题
Sep 17 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 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
一个程序下载的管理程序(二)
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
发现的以前不知道的函数
2006/09/19 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
Vue.js实现的购物车功能详解
2019/01/27 Javascript
Python实现图像几何变换
2015/07/06 Python
Python中字符串的格式化方法小结
2016/05/03 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
python list多级排序知识点总结
2019/10/23 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
暑假实习求职信范文
2013/09/22 职场文书
秘书行业自我鉴定范文
2013/12/30 职场文书
高中同学聚会邀请函
2014/01/11 职场文书
公共场所禁烟标语
2014/06/25 职场文书
出国签证在职证明
2014/09/20 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
担保书范本
2015/01/20 职场文书
离婚财产分割协议书
2015/08/11 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
入门学习Go的基本语法
2021/07/07 Golang
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers