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