Bonjour,
J'ai un problème pour faire passer des données JSON avec une requête XHR. Les données JSON sont générées dynamiquement dans un objet avec une fonction qui puis converties en JSON avec la fonction:
Je fais ensuite la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part json = dojo.toJson(data)
Dans firebug dans la partie Reseau > Ma requête > Post, je vois bien les données envoyées en paramètres de la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 dojo.xhrPost({ url: 'http://localhost/projet/public/index.php/polls/application/save-answers', content: { data: json }, sync: true, handleAs: "text", load: function(responseObject,ioargs) { return data; } });
Du côté PHP, j'utilise Zend_Json pour decoder (logiquement pas de problème de ce côté, j'ai essayé avec un objet manuellement et ça fonctionne):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 data {"idPoll":1}
Et voici mon problème: les données retournées pour l'objet responseObject.idPoll est "null". J'ai donc essayé de passer la variable $data en retour et ça me donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $data = $_POST['data']; $phpNative = Zend_Json::decode($data); $this->view->idPoll = $phpNative["idPoll"];
{\\\"idPoll\\\":1}"} Je pense donc que le problème vient de ces antislashs et que la fonction Zend_Json::decode() ne fonctionne pas à cause de ça. Mais pourquoi est-ce que j'ai ces antislashs et comment les enlever?
Merci.
Partager