javascript - 如何将json类型的数据附加到新的FormData

标签 javascript php jquery json

我有一个这样的 php 文件

<form id="f-comment" class="form" method="post" action="submit_img_comment.php">
    <textarea name="comment"></textarea>
    <input type="submit" value="Publish" data-params='{"imageid":<?php echo $imageid; ?>}'>
</form>

我正在使用 jQuery ajax 发送表单

$(document).on("submit", ".form", function(e) {
    e.preventDefault();

    // what form are you submitting?
    var form = $("#" + e.target.id);

    // parameters to send along with data
    var params = $(this).data("params");

    $.ajax({
        type: form.attr("method"),
        url: "include/" + form.attr("action"),
        data: new FormData(this),
        dataType: "json",
        contentType: false,
        processData: false,
        cache: false
    }).done(function(data) {
        alert(data['msg']);
    }).fail(function(data) {
        alert("Error: Ajax Failed.");
    }).always(function(data) {
        // always do the following, no matter if it fails or not
    })
});

到目前为止一切顺利。

唯一缺少的是如何将参数添加到 FormData。有什么想法吗?

最佳答案

使用.append(),参见Using FormData Objects ;将 params 声明处的选择器调整为 $(input[type=submit], this) ,其中 thisform.data() 引用 .data()input type="submit" 元素

 $(document).on("submit", ".form", function(e) {
    e.preventDefault();
    var data = new FormData("form", this);
    var params = $("input[type=submit]", this).data("params");
    data.append("params", params);
    $.ajax({
        type: form.attr("method"),
        url: "include/" + form.attr("action"),
        data: data,
        dataType: "json",
        contentType: false,
        processData: false,
        cache: false
    }).done(function(data) {
        alert(data['msg']);
    }).fail(function(data) {
        alert("Error: Ajax Failed.");
    }).always(function(data) {
        // always do the following, no matter if it fails or not
    })
  })

关于javascript - 如何将json类型的数据附加到新的FormData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35736330/

相关文章:

javascript - 如何在运行 onbeforeunload 后调用注销代码

javascript - 停止输入提交表单 - 得到奇怪的结果

javascript - Jquery 在第一页加载时加载,但在 ajax div 中重新加载时不加载

javascript - JQuery 日期选择器年份范围

javascript - 通过匹配属性键而不是值来查找元素

javascript - 如何在 Python 中使用 Flask 压缩/最小化 JSON/Jsonify 的大小?

javascript - Vercel Postgres 批量插入,从数组动态构建 SQL 查询

javascript - 为什么 scrollWidth 在这种情况下在 Firefox 中不起作用?

javascript - 将服务器端谷歌图表生成为图像

php - 没有 "finally"的编程