Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
Je m'auto répond j'ai rajouté à ma fonction d'enregistrement :
/* si pas ajax */ if(!preg_match('/ajax/', $this->getRequest()->getRequestUri())) { $this->_session->requestUri = $this->getRequest()->getRequestUri(); }
Hors ligne
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 ?
<?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
Pages: 1