首页 > 解决方案 > 如何使用 Ajax 提交或发布 Csv 文件以及其他表单详细信息

问题描述

有一个 HTML 表单,其中包含输入字段名称、位置、地址、家庭成员(要上传的 Csv)和一个提交按钮。但是当点击提交时,Csv 文件数据没有被传递给 php.ini。以下是供参考的代码,

var formData = new FormData($('.AdvFrm')[0]);

$.ajax({
    type: "POST",
    method: "POST",
    url: "test.php",
    data: formData.serialize(),
    cache: false,
    contentType: false,
    processData: false,
    enctype: 'multipart/form-data',
    success: function(data) {}
});

标签: phphtmljqueryajax

解决方案


我不知道你为什么把你的数据放在 FormData 部分然后序列化它?它应该返回错误,因为没有serializeFormData 的方法。

我猜你刚刚在第一行将它从 jQuery 序列化对象更改为 FormData。

在您的情况下,您需要做的就是更改formData.serialize()formData

var formData = new FormData($('.AdvFrm')[0]);

$.ajax({
    type: "POST",
    method: "POST",
    url: "test.php",
    data: formData,
    cache: false,
    contentType: false,
    processData: false,
    enctype: 'multipart/form-data',
    success: function(data) {}
});

如果您的 formData 对象不包含详细信息,您应该像这样添加它:

var formData = new FormData();
var file = $('#file').val(); // Remember to put an id to your file <input type="file" id="file" />
formData.append('file', file);

推荐阅读