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.

OK, acum folosesc funcția serializeArray()
și să vedem ce se întâmplă... vă voi actualiza cât de repede posibil.

Acum am date în consolă folosind funcția serializeArray()
, dar POST
este încă gol, din păcate.

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 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.
