javascript - 从表单构建 FormData 对象

标签 javascript php jquery ajax multipartform-data

我的 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>

最佳答案

您的问题是您在输入标签中使用的是 id 而不是 name,这不会让 JQuery 很好地处理它们,因此它会忽略它们.此外,这不是常见的做法,PHP 也不太喜欢它:)

干杯!

关于javascript - 从表单构建 FormData 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554538/

相关文章:

javascript - 如何连接2个字符串并使它们成为数组?

javascript - 单击按钮时.show() 不起作用

javascript - VueJS : Bind values to Component

javascript - 重新选择总是重新渲染

php - 按多维数组中的值排序

php - 如何向mysql表中插入数组数据

php - 在 jQuery 中获取 PHP 变量

javascript - 为什么这 => 不将 "this"绑定(bind)到周围的范围?

php - Paypal 立即购买按钮 - 下拉数量

javascript - 使用 jquery 禁用 html 表单中的提交按钮的功能,但它仍然可见