Datele formularului sunt goale la trimiterea prin ajax folosind jQuery în WordPress
Trimit un formular prin ajax folosind jquery în WordPress dar din păcate primesc formularul gol în console.
Aici este codul meu 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');
}
}
});
}
Și aici este codul fișierului 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);
}
Fișierul Ajax returnează 0.
Vă rog să mă ajutați să rezolv această problemă.
Mulțumesc anticipat.
Încearcă să folosești .serialize() în loc de 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');
}
}
});
}
sau folosește .serializeArray() dacă vrei ca datele tale să fie într-un array în loc de un string.
EDIT - conform comentariilor, elimină processData:false și contentType:false din apelul ajax
Am folosit funcția .serialize(), dar din păcate nu trimite datele din fișiere.
Vipin
OK, acum folosesc funcția serializeArray() și să vedem ce se întâmplă... vă voi actualiza cât de repede posibil.
Vipin
Acum am date în consolă folosind funcția serializeArray(), dar POST este încă gol, din păcate.
Vipin
Deci, în final problema a fost rezolvată urmând acești pași -
1. Elimină processData:false din cererea ajax
2. Elimină contentType:false din cererea ajax
3. Folosește funcția serializeArray() în loc de FormData().
Mulțumesc pentru ajutor.
Noroc
Vipin
@Vipin poți, te rog, să editezi acest răspuns sau să postezi propriul tău răspuns cu rezultatul tău? Nu am înțeles cum să înlocuiesc formdata cu serializeArray.
Basti