我正在使用jQuery和PHP发布长动态创建的HTML表单。因为我需要一个“发送”对话框并在同一页面上显示结果(理想情况下是在jQuery弹出窗口中),所以我不使用传统的HTML表单提交。我正在做的工作很好,除了文件输入类型不上传。
有办法做到这一点吗?
这是我的代码:
jQuery的:
function submitForm(submiturl)
{
$.blockUI({ message: "<h2>Submitting...</h2>" });
var form = $('#theForm').serialize();
var fields = "<?= urlencode(serialize($allFields)) ?>";
$.ajax({
url: submiturl,
data: {form: form, fields: fields, extraResults: window.extraResults},
type: "post",
cache: false,
complete: function() {
// unblock when remote call returns
$.unblockUI();
},
error: function (xhr, ajaxOptions, thrownError) {
alert("ERROR");
},
success: function( strData ){
alert("SUCCESS: " + strData);
}
});
}
答案 0 :(得分:0)
在表单中提及enctype="multipart/formdata"
并在您的函数中使用此代码
var uf = //get form id;
var fd = new FormData(uf);
$.ajax({
type: "POST",
url: "xxxxx.php",
data: fd,
processData:false,
contentType: false,
success: function(msg){ }
});