我已经构建了这个自定义表单,用户可以点击按钮来配置自己的产品。然后将这些数据与AJAX一起发送到我的PHP后端(Wordpress),在后端处理并存储在数据库中。我也希望允许用户上传文件,但是如何将此文件和我现在使用相同POST请求的JSON数据发送到后端?
configurationData是一个存储所选组件的数组。 detailsFormData包含相同格式的名称,电子邮件等。
处理AJAX请求的Javascript:
$.post(
stac.ajax_url, {
'action': 'add_configuration',
'nonce': stac.nonce,
'configurationData': configurationData,
'detailsFormData': detailsFormData,
},
function( response ) {
if( response.success ) {
// do some fancy things
} else {
// more stuff
}
}
);
这很好用,但显然它不允许用户上传文件。我已经尝试了一堆教程,但那些只允许文件上传,没有别的,所以没有json数据。还尝试了var formData = new FormData(this);
的一些内容并添加了一些设置(processData: false
,contentType: false
和cache: false
),但发布了一个javascript对象,我不知道如何在后端处理它。
'action': 'add_configuration',
'nonce': stac.nonce,
'configurationData': configurationData,
'detailsFormData': detailsFormData,
EDIT2:可以像添加formData一样附加它们。现在应该工作,但是还没有在后端处理它。