
用formDate可以;将文件读入formDate中然后将要加的数据已键值对的形式加入formDate;
var formdate=new formDate(documentgetElementById('ID')files[0]
);
formdateappend(name:'maomao');
然后将formDate作为数据用ajax发送即可input框里一定要有name属性哦
在表单上传文件的时候必须设置enctype="multipart/form-data"表示表单既有文本数据,又有文件等二进制数据。但是使用用Ajax没有enctype="multipart/form-data",所以不能直接上传文件,所以采用FormData对象包含数据上传。
这里我们不使用Ajax,直接提交表单,添加一个隐藏得iframe,将form表单的target指向这个iframe来阻止刷新并且上传文件。
<form method="POST" action="/uploadphp" enctype="multipart/form-data" target='ifr' id="form1">
<label for="name">name:</label><input type="text" id="name" name="name"/><br/>
<input type="file" name="file" >
<input type="submit" value="提交">
</form>
接着,我们要获取返回值
var iframe=documentgetElementById("ifr");
iframeonload= function () {
var bodycontent=iframecontentDocumentbodyinnerHTML;
consolelog(bodycontent);
//处理获取到的内容;
}
这样的话基本上可以模拟ajax的 *** 作,实现无刷新提交表单。 完整代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="POST" action="/uploadphp" enctype="multipart/form-data" target='ifr' id="form1">
<label for="name">name:</label><input type="text" id="name" name="name"/><br/>
<input type="file" name="file" >
<input type="submit" value="提交">
</form>
<iframe name='ifr' id="ifr" style='display: none;'></iframe>
<script>
var iframe=documentgetElementById("ifr");
iframeonload= function () {
var bodycontent=iframecontentDocumentbodyinnerHTML;
consolelog(bodycontent);
//处理获取到的内容;
}
</script>
</body>
</html>
//php代码
<php
echo "name:"$_POST['name']";filename:"$_FILES['file']['name'];
<script type="text/javascript">
var xml>
其实loading的作用是前台和后台交互的过程,也就是说,点击提交,显示loading,后台数据返回,loading结束,不是你认为的loading结束后再提交表单数据,这样没有实际意义的。
实现:自己先学习AJAX吧,会了自然就会了,
ajax是一种传输方式,数据不是提交给ajax,而是 数据 由 ajax提交到后台(并不刷新页面)
要实现一个简单的ajax请求,要这3样东西,一个html页,一段js代码,一个可以响应请求的后台
这里使用了jquery的js框架,原生js的ajax请求我背不住
html
<!--这里需要引用一个jquery的库--><form id="form">
<input name="data" type="text">
<input type="button" value="提交" id="submit">
</form>
<div id="result"></div>
js
$("#submit")click(function(){$ajax({
url:'demophp',
type:"POST",
data:$('#form')serialize(),
success: function(data) {
$("#result")text(data);
}
});
});
demophp
<phpif($_POST['data']){
echo '接受到数据'$_POST['data'];
}else{
echo 没有'接受到数据';
}
>
我只写个意思,表单如果提交,页面会强制跳转,你是无法实现多个表单的提交,除非你给表单指定了提交路径,如
<form name="form1" action="aphp" method="post" target='xxxx'></form>
<IFRAME id='xxxx'name='xxxx' src="" width="220" height="220"></IFRAME>
这是把表单提交重定向到iframe中,页面就不会强制跳转
$(document)ready(function (){
$(function (){
$('form')each(function (){
$(this)submit();
});
});
});
以上就是关于ajax怎么同时在一个表单提交文件和文本全部的内容,包括:ajax怎么同时在一个表单提交文件和文本、ajax不用form提交数据吗、html页面里的ajax调用servlet,html里没有form表单等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)