Salut,

j'ai un FormData que j'envois via $.ajax, dans lequel je stock un objet comme suite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
fd=new FormData();
fd.append("data",{draw:"xxx",search:{value:"une valeur",regex:false},image:$("#myFile").get(0).files});
Quand j'essaie de le parcourir avant de l'envoyer au php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
for(let a of fd.entries()){
   console.log("cle :",a[0],", valeur :",a[1]);//affiche : cle :data ,valeur :[object Object]
}
Ajax :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
$.ajax({
	url:"upload.php",
	method:'post',
	dataType:"json",
	enctype:"multipart/form-data",
	processData:false,//cette option et la suivante posent problème
	contentType:false,
	data:fd,
	success:function(d){
		console.log(d);
	},
	error:function(err){
		alert(err.responseText);
	}
});
La valeur de data est [object Object] et impossible de récupérer les valeurs de cet objet vu qu'il est de type string.

J'ai tout testé, et ni JSON.stringify() ni Array.from ne renvoient le résultat souhaité.

Le problème c'est que j'ai besoin d'envoyer le FormData en tant qu'objet JSON afin que le php puisse le récupérer en tant que array, comme ça je n'aurais plus besoin d'utiliser json_decode() en php.

Note : avec json_decode() je récupère bien les valeurs du FormData sans souci, mais je voudrais bien l'éviter si c'est possible.