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
E路文章系统PHP
Dec 11 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
php设计模式之简单工厂模式详解
Sep 04 PHP
PHP使用递归生成文章树
Apr 21 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
Zend Framework分发器用法示例
Dec 11 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
php中的依赖注入实例详解
Aug 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
python更改已存在excel文件的方法
2018/05/03 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
应届生新闻编辑求职信
2013/11/19 职场文书
人事经理岗位职责
2014/04/28 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
Redis高可用集群redis-cluster详解
2022/03/20 Redis