我的FormData对象将不会从我的页面表单元素获取数据。当我在PHP文件中执行var_dump($_POST)
时,附加的数据通过并显示,但是表单数据不存在。如果没有追加,它就是一个空数组。
$(function() {
$("form").on("submit", function() {
var formData = new FormData($("#form")[0]);
formData.append("Hello world", "This is a test");
$.ajax({
url: "sub/addCrane.php",
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false,
})
.done(function(data) {
$("#form").append(data);
});
});
});
HTML表单:<form id="form" enctype="multipart/form-data" action="#">
<p class="inline">Crane Model: </p><input type="text" id="model"><br />
<p class="inline">Crane Brand: </p><input type="text" id="brand"><br />
<p class="inline">Crane type (ie. Crawler, Tower, Mobile): </p><input type="text" id="type"><br />
<p class="inline">Image of crane: </p><input type="file" id="image">
<input type="submit" id="submit">
</form>
你的问题是你使用id
而不是name
在你的输入标签,这不会让JQuery玩得很好,所以它忽略了他们。而且,这不是常见的做法,PHP也不喜欢:)
干杯!
再试一次:
$("#form").submit(function () {
var formData = new FormData();
jQuery.each($('#image')[0].files, function(i, file) {
formData.append('file-'+i, file);
});
$.ajax({
type: "POST",
url: 'sub/addCrane.php',
data: formData,
success: function (answer) {
console.log(answer);
}
});
return false;
});