Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-02-2009 13:57:03

eMeRiKa
Membre
Lieu: Paris
Date d'inscription: 05-02-2009
Messages: 50
Site web

[résolu][1.7.4] Ajax et redirection

Bonjour,

J'ai une aide d'action qui fait une redirection vers la page précédente. La page précédente est sauvegardé en session dans un plugin en dispatchLoopShutdown à partir de $_SERVER['REQUEST_URI'].

Mais j'ai un problème avec l'ajax, lorsque j'exécute une requête ajax je ne suis plus redirigé vers la page précédente vers une url de la requête ajax (ex : ajax/topmembres/format/html).

Comment empêcher la prise en compte de la requête ajax ?

Merci

Dernière modification par eMeRiKa (08-02-2009 14:05:39)

Hors ligne

 

#2 08-02-2009 14:05:11

eMeRiKa
Membre
Lieu: Paris
Date d'inscription: 05-02-2009
Messages: 50
Site web

Re: [résolu][1.7.4] Ajax et redirection

Je m'auto répond j'ai rajouté à ma fonction d'enregistrement :

Code:

/* si pas ajax */
        if(!preg_match('/ajax/', $this->getRequest()->getRequestUri())) {
           $this->_session->requestUri = $this->getRequest()->getRequestUri();
        }

Hors ligne

 

#3 21-03-2009 12:32:02

patstey
Membre
Date d'inscription: 21-01-2009
Messages: 15

Re: [résolu][1.7.4] Ajax et redirection

Bonjour,

j'ai rencontré le même problème, il y a peu et en cherchant dans la doc de ZF j'ai choisie la solution suivante qui me semble plus facilement réuitilisable.

Q'en pensez vous ?

Code:

<?php
/**
 * Plugin mémorisant la dernière page vue
 */
class Mon_Plugin extends Zend_Controller_Plugin_Abstract
{
    /**
     * Session récupérée du registre
     *
     * @var Zend_Session_Namespace
     */
    private $_session;
    /**
     * Est une requête Ajax
     *
     * @var bool
     */
    private $_isAjax = false;
    /**
     * Constructeur
     */
    public function __construct()
    {
        // récupération de la session dans le registre
            $this->_session = Zend_Registry::get('session');
    }
    /**
     * A l'entrée dans la boucle de dispatching
     *
     * @param $request Zend_Controller_Request_Abstract
     */
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
    {
        // si la requête n'est pas un appel ajax
        if(!$request->isXmlHttpRequest()){
            
            // ... 
        }
        else {
            $this->_isAjax = true;

            // ...
        }
    }
    /**
     * Mémorise l'Uri actuelle à a sortie de la boucle de dispatching
     * en vue de la réutiliser pour redirection sur la page précédente.
     *
     * @return void
     */
    public function dispatchLoopShutdown()
    {
        // si la requête n'est pas un appel ajax
        if(!$this->_isAjax){
            $this->_session->requestUri = $this->getRequest()->getRequestUri();

            // ..;
        }
    }
}

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