J'ai besoin de sérialiser toutes les entrées d'un formulaire dans une chaîne JSON.
Avec l'aide de ce poste Je peux créer avec succès une chaîne valide comme ci-dessous :
{"input01":"value01","input02":"value02","input03":"value03"}
Cependant, lorsque j'essaie d'utiliser la chaîne pour envoyer des données par POST à l'aide de la fonction Ajax de jQuery, celle-ci semble ajouter des antislashes à la chaîne, ce qui fait que la chaîne JSON est envoyée par GET plutôt que par POST. La page PHP chargée renvoie un $_GET
réseau de :
[{\"input01\":\"value01\",\"input02\":\"value02\",\"input03\":\"value03\"}] =>
J'ai testé la chaîne JSON en utilisant alert()
pour confirmer que la structure est correcte avant d'être utilisée dans la fonction AJAX.
De plus, si je saisis manuellement la chaîne JSON valide, l'AJAX affiche les données correctement.
Mon code est le suivant :
var dataJSON = $.toJSON($('#form').serializeObject());
alert(dataJSON);
$.ajax({
type: "POST",
url: "ajax.php",
data: 'Query01=01&Query02=02',
dataType: 'json',
success: function(data){
if (data==1){
$('#wrap').load('ajax.php',dataJSON);
}
}
});