我的FormData对象不会从我的页面表单元素中获取数据。当我在PHP文件中执行var_dump($_POST)
时,附加的数据会经过并显示,但表单数据不存在。没有附加,它只是一个空数组。
使用Javascript:
$(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>
答案 0 :(得分:0)
您的问题是,您在输入代码中使用id
而不是name
,这并不能让JQuery与它们相处,所以它会忽略它们。此外,它不常见,PHP也不是非常喜欢它:)
干杯!
答案 1 :(得分:0)
尝试下一步:
$("#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;
});