Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-06-2008 10:15:58

Fluckysan
Nouveau membre
Date d'inscription: 19-06-2008
Messages: 7

[Résolu] Ajax via Zend_Controller

Bonjour à tous smile
Etant nouveau dans le monde de Zend et de son MVC, j'essaie d'y intégrer un peu d'AJAX
Dites-moip si je fais fausse route et si ce n'est pô la bonne méthode :

J'ai un appel en JS tout bête :

Code:

<a href="#" onClick="showInbox('inbox', 'inboxNav')">Bo&icirc;te de r&eacute;ception</a>

Suivie de son code en JS qui récupère un xml:

Code:

       xhr_object.open("GET", xmlBaseUrl+'inbox/' + mode, true); 
        
           xhr_object.onreadystatechange = function() {
             if(xhr_object.aborted) return;
          if(xhr_object.readyState == 4)
          {
              if(xhr_object.status  == 200)
              {
                var xml = xhr_object.responseXML;

Et l'Action du Controller :

Code:

    function xmlAction()
    {
        $this->_helper->layout->disableLayout();

        switch($this->getRequest()->getParam('w', false))
        {
            case 'inbox' :
                $xml = new Plumillon_Xml_Response_Inbox($_SESSION['user']->id, $this->getRequest()->getParam('m', false));
                break;

                default: die();
        }

        $this->view->xml = $xml->render();
    }

Or, je ne récupère rien dans ma variable xml du JS sauf si je me place en responseText
J'ai choisi de passer par le controller pour faire simple (sans utiliser de librairie AJAX etc)
Comment dois-je faire pour récupérer mon xml qui est pourtant bien généré ?

Merchi d'avance !

Dernière modification par Fluckysan (24-06-2008 12:01:47)

Hors ligne

 

#2 19-06-2008 10:54:13

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: [Résolu] Ajax via Zend_Controller

a mon avis il ne renvoi rien dans ton responseXML car pour lui ce qui est renvoyé n'est pas de l'xml

Je n'ai jamais utilisé responseXML, mais il ne faut pas spécifier le format de ce que tu renvoi dans ta "page cible" ? (format xml ici )

Hors ligne

 

#3 19-06-2008 11:05:49

Fluckysan
Nouveau membre
Date d'inscription: 19-06-2008
Messages: 7

Re: [Résolu] Ajax via Zend_Controller

Merchi pour ta réponse Stf
C'est sans doutes la solution puisque lorsque je teste en responseText j'ai l'affichage de mon XML généré yikes

stf a écrit:

Je n'ai jamais utilisé responseXML, mais il ne faut pas spécifier le format de ce que tu renvoi dans ta "page cible" ? (format xml ici )

Comment puis-je spécifier le format du phtml cible ?

Dernière modification par Fluckysan (19-06-2008 11:06:07)

Hors ligne

 

#4 19-06-2008 11:53:17

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: [Résolu] Ajax via Zend_Controller

Essaye de mettre ca avant de sortir ton xml:

Code:

<?xml version="1.0" encoding="utf-8" ?>

Hors ligne

 

#5 19-06-2008 12:14:50

Fluckysan
Nouveau membre
Date d'inscription: 19-06-2008
Messages: 7

Re: [Résolu] Ajax via Zend_Controller

Je viens de faire un test en rajoutant ceci à ma vue :

Code:

header( 'Content-type: application/xml' );

Vi je n'avais pô précisé mais je faisais un simple echo dans ma vue (xml.phtml) :

Code:

    header( 'Content-type: application/xml' );
    echo $this->xml;

Il fallait bien préciser le type de document, merchi pour al piste Stf smile

Je ne sais pô si cette façon de faire est bien mais ça fonctionne !
Pouvez-vous me donner votre avis ?

Hors ligne

 

#6 19-06-2008 13:47:49

Nikkau
Membre
Date d'inscription: 25-03-2008
Messages: 52

Re: [Résolu] Ajax via Zend_Controller

Côté vue, je sais pas si il y a quelque chose pour éviter de générer un header directement, je suis pas un expert.

Mais côté controller, ça me parait propre smile .

Juste un truc, j'ai pas ce qu'il faut sous la main pour vérifier mais demander le rendu de la vue est obligatoire? C'est pas automatique? A moins que ça soit obligatoire quand on désactive le layout.

Hors ligne

 

#7 19-06-2008 14:19:19

Fluckysan
Nouveau membre
Date d'inscription: 19-06-2008
Messages: 7

Re: [Résolu] Ajax via Zend_Controller

Tu as raison Nikkau, le rendu de la vue est automatique smile
Le render() que tu vois est une fonction de la class Plumillon_Xml_Response_Inbox wink

Merchi pour ta réponse, je me posais aussi la question de savoir s'il y avait une façon de passer le header depuis le contrôler plutôt que de le faire dans le phtml (ça serait plus propre big_smile)

Hors ligne

 

#8 20-06-2008 08:41:47

Nikkau
Membre
Date d'inscription: 25-03-2008
Messages: 52

Re: [Résolu] Ajax via Zend_Controller

Autant pour moi, j'ai regarder le code trop vite, un render() en fin d'action j'ai pas trop fais gaffe wink .

Hors ligne

 

#9 20-06-2008 09:37:12

Fluckysan
Nouveau membre
Date d'inscription: 19-06-2008
Messages: 7

Re: [Résolu] Ajax via Zend_Controller

Np, as-tu des infos pour changer le header via le controller ? yikes

Hors ligne

 

#10 20-06-2008 10:21:53

-=blu3+3y3s=-
Membre
Lieu: Toulouse
Date d'inscription: 01-04-2008
Messages: 47

Re: [Résolu] Ajax via Zend_Controller

Salut,
Tu devrais trouver ton bonheur en regardant dans la doc les aides d'action (action helper) ContextSwitch et AjaxContext.

A+

Hors ligne

 

#11 24-06-2008 11:58:12

Fluckysan
Nouveau membre
Date d'inscription: 19-06-2008
Messages: 7

Re: [Résolu] Ajax via Zend_Controller

Ho merchi Blueeyes c'est ce dont j'avais besoin smile
Now, apprendre à s'en servir big_smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages