我在中使用jquery通过ajax发送表单WordPress
但不幸的是我的表格空了console
.
这是我的jquery代码-
function step1SaveData(){
var formData = new FormData(jQuery(\'#tpform1\')[1]);
console.log(formData);
jQuery.ajax({
type:"POST",
url:\'http://lexem.in/wp-admin/admin-ajax.php\',
processData:false,
contentType:false,
data:{
action:\'tpartners\',
formdata:formData,
},
success:function(data){
var insertedID = data.trim();
if(insertedID!=\'fail\'){
}else{
console.log(\'fail\');
}
}
});
}
这是我的ajax文件代码-
add_action( \'wp_ajax_tpartners\', \'save_update_data\' );
add_action( \'wp_ajax_nopriv_tpartners\', \'save_update_data\' );
function save_update_data(){
print_r($_POST);
print_r($_FILES);
}
Ajax文件返回0。
所以请帮我弄清楚。
提前谢谢。
最合适的回答,由SO网友:mrben522 整理而成
尝试使用.serialize()
而不是FormData
function step1SaveData(){
var formData = jQuery(\'#tpform1\').serialize();
console.log(formData);
jQuery.ajax({
type:"POST",
url:\'http://lexem.in/wp-admin/admin-ajax.php\',
data:{
action:\'tpartners\',
formdata:formData,
},
success:function(data){
var insertedID = data.trim();
if(insertedID!=\'fail\'){
}else{
console.log(\'fail\');
}
}
});
}
或使用
.serializeArray()
如果希望数据位于数组而不是字符串中。
编辑-从注释中删除processData:false
和contentType:false
来自ajax调用