ajax怎么同时在一个表单提交文件和文本

ajax怎么同时在一个表单提交文件和文本,第1张

用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

<php

if($_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表单等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9661882.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存