问题描述
我有一个同时使用文本字段和上传字段的表单。
<form action="submit" method="post" enctype="multipart/form-data">
<input type="text" name="textfield">
<input type="file" name="file_upload">
<button type="submit">Submit</button>
</form>
如何通过ajax传递所有插入的数据并在PhP中使用数据?
我当前通过ajax尝试的是:
var fd = new FormData($('form'));
$.ajax({
url: ajaxurl,type: 'POST',processData: false,contentType: false,data: {
fd: fd,action: 'devplus_submit_annex' // a php function
},success: function(response) {
JSON.parse(response);
},error: function(response) {
console.log('Error');
}
});
解决方法
FormData构造函数将HTMLFormElement作为其参数,您传递了一个jQuery对象。
对于jQuery.ajax,您仅将表单数据对象作为数据字段传递
如果您需要在之外添加数据,则可以使用append()方法。
var fd = new FormData($('form')[0]);
fd.append('action','devplus_submit_annex');
$.ajax({
url: ajaxurl,type: 'POST',processData: false,contentType: false,data: fd,success: function(response) {
JSON.parse(response);
},error: function(response) {
console.log('Error');
}
});