Javascript formdata.append一个组合的关联数组

Javascript formdata.append一个组合的关联数组,javascript,Javascript,我试图从我拥有的两个关联数组中附加数据,以便将其发送到我的php文件,然后写入服务器。 我通过执行以下操作组合了两个阵列: var allInputs = {... reqfields,... otherfields}; 到目前为止,我正在获取所需的所有值,并在控制台上看到它们,但我不知道如何将formData.append()用于这些类型的数组。它看起来像formData.append的签名: (*还可以添加文件名作为第三个参数) 假设reqFields和otherFields是表单的对象:

我试图从我拥有的两个关联数组中附加数据,以便将其发送到我的php文件,然后写入服务器。 我通过执行以下操作组合了两个阵列:

var allInputs = {... reqfields,... otherfields};

到目前为止,我正在获取所需的所有值,并在控制台上看到它们,但我不知道如何将formData.append()用于这些类型的数组。

它看起来像formData.append的签名:

(*还可以添加文件名作为第三个参数)

假设
reqFields
otherFields
是表单的对象:

{
  fieldName1: response1,
  fieldName2: response2,
  ...
}
您可以使用来迭代属性,并在每个属性上调用formData.append

    const allInputs = {...requiredFields, ...otherFields};

    for (let [key, value] of Object.entries(allInputs)) {
       formData.append(key, value);
    }


*请注意,Internet Explorer本机不支持Object.entries。您还可以使用
Object.keys(allInputs).forEach(…)
来输入allInputs

将此对象作为JSON字符串附加到FormData中:

constreqfields={a:1,b:2};
const otherfields={c:3};
常量allInputs={…reqfields,…otherfields};
const formdata=new formdata();
append('your_field_key',JSON.stringify(allInputs));
/*
//然后您可以将其发送到服务器
获取(服务器地址){
方法:“张贴”,
正文:formdata
});
*/
//对于SO演示,我们只需将请求主体记录为文本
新响应(formdata).text()

。然后(console.log)我明白了,这是有意义的,因此在php端,解码值将像$dcData=json_decode($_POST['formData']);一样简单;?在我通过request=new request.JSON({…或者是否有某种方式访问数组中的变量?如果您已经通过post请求发送了formData,您应该能够通过执行以下操作在php端检索单个字段值:
$firstname=$\u post['firstname'];$lastname=$\u post['lastname'];
通过XMLHttpRequest发布表单数据将以
多部分/form data
的形式发送数据,这将使$\u POST上的各个字段都可以访问。如果您使用axios之类的库发出请求,则可能需要手动设置内容类型标题:
axios({method:'post',url:'your url',data:formData,config:{headers:{'Content-Type':'multipart/form-data'}})
请参阅:如果您发送的是json编码的数据,则需要使用
json\u decode
。请查看前面评论中的“使用json”链接以获取示例。另请参阅:和,或使用Kaido建议的方法。
    const allInputs = {...requiredFields, ...otherFields};

    for (let [key, value] of Object.entries(allInputs)) {
       formData.append(key, value);
    }