使用Ajax以一种形式上传数据和文件?我在表单中使用jQuery和Ajax来提交数据和文件,但我不知道如何将数据和文件同时以一种形式发送。目前,我对这两种方法都做了几乎相同的操作,但是数据收集到数组的方式不同,数据使用.serialize();但是文件使用= new FormData($(this)[0]);能否将这两种方法结合起来,以便能够通过Ajax以一种形式上传文件和数据?数据jQuery、ajax和html$("form#data").submit(function(){
var formData = $(this).serialize();
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;});<form id="data" method="post">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<button>Submit</button></form>文件jQuery、ajax和html$("form#files").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;});<form id="files" method="post" enctype="multipart/form-data">
<input name="image" type="file" />
<button>Submit</button></form>如何将上述内容结合起来,以便通过Ajax以一种形式发送数据和文件?我的目标是能够用Ajax将所有的表单发送到一个帖子中,这是可能的吗?<form id="datafiles" method="post" enctype="multipart/form-data">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input name="image" type="file" />
<button>Submit</button></form>
3 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
PHP+HTML
<?php print_r($_POST);print_r($_FILES);?><form id="data" method="post" enctype="multipart/form-data"> <input type="text" name="first" value="Bob" /> <input type="text" name="middle" value="James" /> <input type="text" name="last" value="Smith" /> <input name="image" type="file" /> <button>Submit</button></form>
jQuery+Ajax
$("form#data").submit(function(e) { e.preventDefault(); var formData = new FormData(this); $.ajax({ url: window.location.pathname, type: 'POST', data: formData, success: function (data) { alert(data) }, cache: false, contentType: false, processData: false });});
短版
$("form#data").submit(function(e) { e.preventDefault(); var formData = new FormData(this); $.post($(this).attr("action"), formData, function(data) { alert(data); });});
长风秋雁
TA贡献1757条经验 获得超7个赞
$("form#data").submit(function() { var formData = new FormData($(this)[0]); $.post($(this).attr("action"), formData, function() { // success }); return false;});
添加回答
举报
0/150
提交
取消