Javascript I';我使用jquery序列化功能通过ajax提交表单
但是表单有一个(Javascript I';我使用jquery序列化功能通过ajax提交表单,javascript,php,ajax,Javascript,Php,Ajax,但是表单有一个(字段)如何使用此ajax序列化方法将文件传递到表单中。当我打印$\u文件时,不会得到任何输出。在使用ajax时,不能超过$\u文件变量。我可以向你保证。谢谢。Ajax不支持文件上传,您应该改用iframe。 您可以查看更多详细信息通过Ajax文件上传发布不是直接的。首先,使用XHR1无法直接实现 上传主要有两种方式,一种是使用框架,另一种是使用XHR2spec和FormData对象。这是我推荐的方法 最简单的方法是执行两次上载。我将从中借用一些代码,向您展示如何使用jQuery:
字段)如何使用此ajax序列化方法将文件传递到表单中。当我打印$\u文件时,
不会得到任何输出。在使用ajax时,不能超过$\u文件变量。我可以向你保证。谢谢。Ajax不支持文件上传,您应该改用iframe。
您可以查看更多详细信息通过Ajax文件上传发布不是直接的。首先,使用XHR1无法直接实现 上传主要有两种方式,一种是使用框架,另一种是使用
XHR2
spec和FormData
对象。这是我推荐的方法
最简单的方法是执行两次上载。我将从中借用一些代码,向您展示如何使用jQuery:
var values = $('#form_field').serialize();
dataS = "val="+values;
$.ajax({
type: "POST",
url: URL,
data: dataS,
cache: false,
dataType: 'json',
success: function(response)
{ },
});
我还应该注意到,尽管XHR2已经存在2年了,但浏览器对此的支持有点有限:它包含更多信息和浏览器兼容性图表。Google-
ajax文件上传
文件不会以正常方式随ajax发布,我会推荐jquery图像上传插件XHR2的FormData API呢?它与所有浏览器都不兼容。他也在使用PHP。如果你的借口是“并非所有浏览器都支持”,你最好回去用HTML1为Mosaic编写代码。目前没有人使用Mosaic。
// Ajax File upload with jQuery and XHR2
// Sean Clark http://square-bracket.com
// xhr2 file upload
// data is optional
$.fn.upload = function(remote,data,successFn,progressFn) {
// if we dont have post data, move it along
if(typeof data != "object") {
progressFn = successFn;
successFn = data;
}
return this.each(function() {
if($(this)[0].files[0]) {
var formData = new FormData();
formData.append($(this).attr("name"), $(this)[0].files[0]);
// if we have post data too
if(typeof data == "object") {
for(var i in data) {
formData.append(i,data[i]);
}
}
// do the ajax request
$.ajax({
url: remote,
type: 'POST',
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload && progressFn){
myXhr.upload.addEventListener('progress',function(prog) {
var value = ~~((prog.loaded / prog.total) * 100);
// if we passed a progress function
if(progressFn && typeof progressFn == "function") {
progressFn(prog,value);
// if we passed a progress element
} else if (progressFn) {
$(progressFn).val(value);
}
}, false);
}
return myXhr;
},
data: formData,
dataType: "json",
cache: false,
contentType: false,
processData: false,
complete : function(res) {
var json;
try {
json = JSON.parse(res.responseText);
} catch(e) {
json = res.responseText;
}
if(successFn) successFn(json);
}
});
}
});
};