Question

J'ai un formulaire personnalisé avec une action qui appelle mon contrôleur de module, j'aimerais empêcher la redirection et rester sur la page où le formulaire est soumis mais lorsque j'essaie d'ajouter un caractère générique dans l'action d'index de mon contrôleur, j'obtiens un message « trop ». erreur de redirection'

$this->_redirect('*/*/');

j'ai aussi essayé

$this->_redirectReferer();

Et

$this->_redirectReferer('*/*/');

Voici mon index Action dans mon contrôleur de module

public function indexAction()
{
    $params = Mage::app()->getRequest()->getPost();

    if (isset($params['country'])) {
        $this->setCountry((string)$params['country'], isset($params['hide']));
    }

    if (isset($params['currency'])) {
        $this->setCurrency((string)$params['currency']);
    }
    $this->_redirectReferer();
}

Et ci-dessous se trouve mon formulaire qui est publié sur mon contrôleur

<form method="post" action="<?php echo Mage::getUrl('locale/switch'); ?>">
    ....
</form>

Existe-t-il une meilleure façon de soumettre ce formulaire sans rediriger vers le contrôleur.

Était-ce utile?

La solution

La réponse n'implique pas de forcer Magento à rester sur la page puisque

$this->_redirectReferer()

Gère bien ce comportement pour nous.Le problème lui-même était dû au fait que certaines pages avaient une URL sécurisée, ce qui signifiait que Magento redirigeait lorsque le formulaire était soumis via https la solution était de changer :

<?php echo Mage::getUrl('locale/switch'); ?>

À

<?php echo Mage::getUrl('locale/switch',array('_secure'=>true)); ?>

Le formulaire peut désormais être soumis via des URL sécurisées et non sécurisées sans redirection.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top