Volver a la accion o pagina anterior

1,269 views
Skip to first unread message

lmdes

unread,
Sep 18, 2009, 1:06:27 AM9/18/09
to symfony-es
Hola!! Bueno, sigo con mis consultas sobre symfony, y lo que estoy
intentando hacer es permitir al usuario volver a la pagina anterior o
a la pagina desde donde llamo a la pagina o accion actual (ya sea
mediante un boton volver o porque simplemente desde un template se
llama a una accion y luego se debe volver a dicho template para
mostrar una respuesta o mensaje flash, que dicho sea de paso, puede
variar). Puedo hacer eso usando el objeto $request???

Gracias

Virginia Boscaro

unread,
Sep 19, 2009, 4:00:22 PM9/19/09
to symfo...@googlegroups.com
Si no entendí mal, con poner en tu platilla un botón volver y el siguiente código, ya es suficiente:
<button type="submit" onclick="history.back()">

Este código es javascript, y funciona igual que el botón "atrás" del navegador, o sea que vuelve a la página inmediatamente anterior.

Hay, además, algunas variantes para volver x cantidad de páginas hacia atrás.
Espero que te sirva.

---
If I agreed with you we'd both be wrong.


2009/9/18 lmdes <lobit...@hotmail.com>

Jorge Rodríguez

unread,
Sep 19, 2009, 8:39:38 PM9/19/09
to symfo...@googlegroups.com
Hola:

2009/9/18 lmdes <lobit...@hotmail.com>:

Lo más fácil, si quieres sacar mensajes y no te vale lo de javascript,
es que le pases a la acción un parámetro que le indiqué de dónde vino
la llamada y luego dentro de la acción hagas un redirect() a donde
quieras.

Otra forma de hacerlo es con varias rutas para la misma acción. Por ejemplo que:

* http://www.misitio.com/usuario/mensajes/pepito
* http://www.misitio.com/editor/mensajes/pepito

En realidad referencien a la misma acción en el routing.yml. Dentro de
la acción puedes ver la ruta con el método getPathInfo() de $request y
personalizar la respuesta o redirigirles a alguna parte dependiendo de
si vinieron por "editor" o por "usuario"

--
Jorge Rodriguez

MSN: jorginius at gmail
JID: jorginius at gmail
YIM: jrm_yh

PGP: 311E 7CBE E5BC 0105 01E1 4A4C 9DFC 2E04 ADF9 A1B0

Because it messes up the order in which people read text
Why is top-posting a bad thing?

Virginia Boscaro

unread,
Sep 20, 2009, 11:03:19 AM9/20/09
to symfo...@googlegroups.com
Jorge,

Te agradezco por tu respuesta, voy a probarlo porque si me funciona así ¡me solucionaste un problema a mí también!

En la página donde tengo el botón "Volver" con javascript, tengo una pequeña galería de fotos donde van cambiando las fotos al hacer clicks sobre los thumbs (todo en la misma página). Y entonces el botón volver, me contaba también los clicks que hacía sobre las fotos, asíque para volver a la página anterior tenía que hacer tantos clicks como thumbs había visto... o sea, una macana que no servía! jajaja.

Muchas gracias!


---
If I agreed with you we'd both be wrong.


2009/9/19 Jorge Rodríguez <jorg...@gmail.com>

Virginia Boscaro

unread,
Sep 20, 2009, 12:24:20 PM9/20/09
to symfo...@googlegroups.com
Sin usar javascript, lo hice finalmente así:

En la acción:
public function executeShow(sfWebRequest $request)
{
     $this->anterior = $request->getReferer();
     ...
}


(podés usar también $this->getRequest()->getReferer();)

En el template:
"Volver": <a href="<?php echo $anterior ?>">Volver</a>

En mi caso, como es la página de un resultado, se llega sí o sí desde otras páginas.
Esto lo aclaro, porque si se puede acceder directamente a la página que tiene el botón volver, el botón no funcionaría, ya que el HTTP_REFERER es null (algo totalmente lógico...). Por lo tanto, si este es tu caso, mostraría el botón sólo si se ha venido de otra página (o sea, si getReferer() <> null).


---
If I agreed with you we'd both be wrong.


2009/9/20 Virginia Boscaro <vbos...@gmail.com>
Reply all
Reply to author
Forward
0 new messages