由于某种原因,我无法让以下脚本正常工作,在不使用脚本提交表单时,一切都正常工作,但是当使用脚本提交表单时,我只获得帖子中的类别和描述变量但没有文件。所以我的问题是如何让脚本也发布文件变量。
Ajax
$("#img-post").click(function()
{
$("#imgupload").submit(function(e)
{
var postData = $(this).serializeArray();
var formURL = $(this).attr("action");
$.ajax(
{
url : formURL,
type: "POST",
data : postData,
success:function(data, textStatus, jqXHR)
{
$("#img").html('<pre><code class="prettyprint">'+data+'</code></pre>');
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('Error');
document.getElementById('enquiry').style.visibility = 'hidden';
}
});
e.preventDefault(); //STOP default action
});
$("#imgupload").submit(); //SUBMIT FORM
});
HTML
<div class="img" id="img"></div>
<form name="imgupload" id="imgupload" action="upload.php" method="post" enctype="multipart/form-data">
<input name="category" id="category" type="text" />
<input name="file" id="file" type="file" />
<textarea name="discription" id="discription" cols="68%" rows="8"></textarea><br>
<input type="button" id="img-post" name="img-post" value="Add" />
</form>
最佳答案
文件选择元素中的数据未序列化
取自文档页面:
https://api.jquery.com/serializeArray/
但是,您可以使用此处的 jquery ajax 表单插件来实现此目的:
http://malsup.com/jquery/form/
这个插件很好,因为它不仅可以捕获表单数据(包括文件),您还可以轻松地在 ajax 调用的 data
属性中发送额外的 $_POST
数据以及您的表格。
关于jquery - 使用 Ajax 发布多部分/表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22771234/