Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-09-2009 09:37:38

nicko
Membre
Lieu: Chambéry
Date d'inscription: 25-05-2009
Messages: 190

[résolu]Amélioration des requêtes Ajax ?

Bonjour,

Je suis entrain de mettre certaines parties de mon projet en ajax et j'avoue que ce n'est pas bien claire. J'espère que vous pourrez m'éclaire sur ce sujet.

Voila un exemple. Sur la page de login, j'ai un menu déroulant ou l'on peut choisir la langue par défaut de l'administrateur.

Ensuite j'ai fait ce bout de script en JS avec JQuery :

Code:

$(document).ready(function(){
    $('#languages option').click(function() {
        var value = $(this) . val();
        var
        $.ajax({ type: "POST",
                 url: "/manager/index/languages",
                 data: "changeLanguage=" + value,
                 success: function(msg){
                     location.reload()
                 }
               });
    });
});

Quelques explications, je récupère le code de la langue dans les options du menu déroulant puis je l'envoi en paramètre à l'action suivante "/manager/index/languages".

Comme le faite que changer la langue peut être utilisé n'importe ou dans l'admin ou la partie public, j'ai donc décidé de mettre cette action dans une extention de mes controller d'action.

Exemple :

Code:

class Controller_Action extends Zend_Controller_Action {
    protected $_request = null;

    public function init()
    {
        $this->_request = $this->getRequest();
    }

    public function languagesAction()
    {
        if(isset($this->_request->changeLanguage) && in_array($this->_request->changeLanguage, array('en_GB','fr_FR'))){
            Zend_Registry::get('session')->language = $this->_request->changeLanguage;
        }
    }
}

Ainsi je peux mettre la class Controller_Action à n'importe quel controller d'action. Voila mes questions.

1 - Est-ce une bonne solution ?
2 - Dans le code JS, j'ai mis en dur "/manager/index/languages", mais il n'y a que action qui fixe; le module et le contrôler peuvent différents suivant la page. Comment faire pour rendre cette partie dynamique ?
3 - D'après ce que je lis sur le net, il faudrait utiliser ajaxContext ou contextSwitch. Là ça fonctionne sans, pourquoi ? Et en quoi cela peut-il apporter des problèmes s'ils ne sont pas utilisés ?

Merci d'avance de vos réponces
Cordialement.

Dernière modification par nicko (14-09-2009 10:51:06)

Hors ligne

 

#2 14-09-2009 09:42:32

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [résolu]Amélioration des requêtes Ajax ?

perso je frais un contrôleur spécifique à la gestion des préférence de l'utilisateur (entièrement en ajax)
ainsi tu peux l'appeler n'importe où et tu mélange pas les actions de tes contrôleurs
de plus tu n'est pas obligé de passer des paramètre dans l'url pour forcer le switchContext mais utiliser dans le init du contrôleur un isXmlHttpRequest et un noViewRenderer

A+JYT

Hors ligne

 

#3 14-09-2009 09:57:22

nicko
Membre
Lieu: Chambéry
Date d'inscription: 25-05-2009
Messages: 190

Re: [résolu]Amélioration des requêtes Ajax ?

Merci pour ta réactivité sekaijin.

C'est vrai que je n'avais pas forcément pensé à cette solution qui est tout de même plus simple ! wink

Mais je ne comprends pas à quoi correspond le switchContext. Au juste, que ce que ça permet de plus ?

Hors ligne

 

#4 14-09-2009 10:36:36

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [résolu]Amélioration des requêtes Ajax ?

je ne sais pas où exactemen tu as sur le forum une discu assez longue sur le sujet avec pas mal d'exemples
A+JYT

Hors ligne

 

#5 14-09-2009 10:50:47

nicko
Membre
Lieu: Chambéry
Date d'inscription: 25-05-2009
Messages: 190

Re: [résolu]Amélioration des requêtes Ajax ?

Ok merci je vais chercher ça.

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