FormData实现form表单的数据打包
2015-02-04
HTML代码:
<html> <head> <title>FormData</title> <script type="text/javascript"> /*formData 表单数据 这是在html5中新增的一个API 能以表单对象作为参数,自动的把表单的数据打包 当ajax发送数据时,发送些formData, 达到发送表单内各数据的目的。 */ function send(){ //获取form的dom对象 var fm = document.getElementById('tform'); //将form数据用formData打包 var fd = new FormData(fm);
var xhr = new XMLHttpRequest(); xhr.open('POST','FormData.php',true); //post发送 xhr.onreadystatechange = function(){ if(this.readyState == 4){ document.getElementById('debug').innerHTML = this.responseText; } } xhr.send(fd); } </script> </head> <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="gender" /><br/> <input type="button" value="Ajax发送" onclick="send();" /><br/> </form> <div id = "debug"></div> </body> </html> |
PHP代码
<?php
print_r($_POST);
?>
如图所示,php的POST输出了,针对输入的form表单的打包数据
使用 formdata的对象 .append('key','value'),可以实现对数据的增加
同样:
formdata 不仅可以实现对数据的打包, 还可以人为的添加数据
//建立一个空的formData数据
var fd2 = new FormData();
//人为的添加数据
fd2.append('username',"zhangsan");
fd2.append('age',23);
xhr.send(fd2);
运行后,可以看到,我们并未数据,显示的数据是我们append得到的