Salut,
j'ai un FormData que j'envois via $.ajax, dans lequel je stock un objet comme suite :
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 fd=new FormData(); fd.append("data",{draw:"xxx",search:{value:"une valeur",regex:false},image:$("#myFile").get(0).files});
Ajax :
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] }
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.
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); } });
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.
Partager