Pregunta

Tengo un formulario personalizado con una acción que llama a mi controlador de módulos, me gustaría evitar la redirección y permanecer en la página donde se envía el formulario, pero cuando intento agregar un comodín en mi acción de índice de controlador, obtengo un'Demasiados redirigs errores'

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

También he intentado

$this->_redirectReferer();

y

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

Aquí está mi acción de índice en mi controlador de módulos

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();
}

y abajo es mi forma que publica a mi controlador

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

¿Existe una mejor manera de presentar este formulario sin redirigir al controlador?

¿Fue útil?

Solución

La respuesta no implica forzar Magento para permanecer en la página desde

$this->_redirectReferer()

Maneja este comportamiento bien para nosotros.El problema en sí mismo se debió a algunas páginas que tienen una URL segura, lo que significaba que Magento rediría cuando se envió el formulario sobre https, la solución era cambiar:

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

a

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

Ahora se puede enviar el formulario sobre las URL seguras e inseguras sin redirigir

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top