Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un problème pour récupérer mes données JSON envoyées par dojo avec le zend. Du côté client la requête ressemble à ceci:
L'objet en paramètre tel que vu par firebug: data {"idPoll":1} dojo.xhrGet({ url: 'http://localhost/projet/public/index.php/polls/application/save-answers/format/json', headers: {"X-Requested-With": "XMLHttpRequest"}, content: { data: json }, sync: true, handleAs: "json", load: function(responseObject,ioargs){ return data; } });
Ensuite dans mon action Zend, je renvoie le paramètre idPoll à ma vue pour voir ce que ça donne:
public function saveAnswersAction() { if ($this->_request->isXmlHttpRequest()) { $data = $this->_request->getParam('data'); $phpNative = Zend_Json::decode($data, Zend_Json::TYPE_ARRAY); $this->view->idPoll = $phpNative["idPoll"]; } }
Mais dans firebug j'ai le résultat {idPoll:null}. Donc il y a apparemment un problème lors du décodage. J'ai fouillé un peu et si je renvoie $data à la place de $phpNative["idPoll"] à la vue ça m'affiche: des antislashs avant les quotes, je pense que ça vient de là mais je comprend pas pourquoi ces antislashs apparaissent et ne sont pas décodés simplement c'est le principe de JSON après tout!
Quelqu'un aurait une idée?
Merci
Hors ligne
il faudrait savoir ce que tu envois à ton controller
dans data
Hors ligne
Oui, je l'avais écrit mais c'était peut être pas clair. Je fais:
var data = self.poll.toData(); var json = dojo.toJson(data);
où ce json est: {"idPoll":1}. Le but étant ensuite d'envoyer d'autres paramètres mais j'en ai déjà assez d'un qui ne marche pas .
Merci de t'intéresser à mon problème là je bloque vraiment.
Dernière modification par Tavarez (18-10-2009 00:09:20)
Hors ligne
non ce qu'il faut savoir c'est le texte que reçois Zend dans Data
car c'est ça qu'il ne peut décoder
peut importe comment tu l'y mets
si ton data n'est pas conforme il n'y a qu'en le voyant qu'on peu s'en apercevoir
A+JYT
Hors ligne
Lorsque je passe le paramètre $data en sortie ça me donne ça:
{\\\"idPoll\\\":1}"}. C'est certainement ça qui est retourné. Sinon je vois pas de moyen. Si tu en as un je suis preneur
Hors ligne
print_r ($data)
Hors ligne
Pages: 1