$this->redirect en otra ventana

550 views
Skip to first unread message

Nefastofeles

unread,
Apr 22, 2009, 12:05:50 PM4/22/09
to CakePHP en Español
Estoy intentando hacer que el $this->redirect me redireccione en una
ventana nueva pero hasta el momento no logro.

Lo que se hace generalmente es

function accion1()
{
...
}
function accion2()
{
...
$this->redirect (array('controller' => 'controlador', 'action' =>
'accion2'))
}

Pero donde le meto algo que diga que me habra en una nueva ventana o
en su defecto alguna sugerencia ???

Nachopitt

unread,
Apr 22, 2009, 12:09:05 PM4/22/09
to cakep...@googlegroups.com
Creo que eso es programación del lado del cliente... con Javascript.

Lo que no entiendo es que si haces un redirect con cakephp a otra ventana, que sucede con el request actual en la ventana que estabas?

2009/4/22 Nefastofeles <howar.r...@gmail.com>



--
Ignacio Alberto Zamora Esqueda
Ingeniero de Software
Corporación Tectronic, S.A. De C.V.
Tels: (33) 3615-44-11 y 36-15-45-11
Fax: (33) 3615-46-11
sist...@tectronic.com.mx
www.tectronic.com.mx

jordicakephp

unread,
Apr 22, 2009, 12:21:50 PM4/22/09
to CakePHP en Español
Hola Nefastofeles,

Soy novatillo en AJAX y seguro que meto la pata, pero recién me
encontré con un problema parecido y quizás pueda ayudarte. Yo
intentaría enviar al navegador código JavaScript con un window.open.
Un saludo

Nefastofeles

unread,
Apr 22, 2009, 12:22:56 PM4/22/09
to CakePHP en Español
Lo que pasa es que ejecuto la primera accion en una ventana generada
con ajax, de esta mando datos al controlador, ahora con el redirect se
actualiza la ventana generada con ajax, pero lo que intento hacer es
que la accion se ejecute en una nueva ventana

jordicakephp

unread,
Apr 22, 2009, 12:40:26 PM4/22/09
to CakePHP en Español
Hola Nefastofeles,

Prueba esto, a ver qué tal.

1. Haz que en la primera ventanta Cake te genere un objeto Prototype
de tipo Ajax.Updater. Queremos rellenar su div correspondiente con
código JavaScript.

2. Crea la vista redireccion_javascript.ctp con el siguiente código:

<?php
echo '<script type="text/javascript">';
echo 'window.location="http://localhost/nomdeljoc/multijugador";';
echo '</script>';
?>

3. Añádele a la lógica de tu controlador otra que renderice la vista
que acabas de crear en el momento que consideres oportuno:

if (cuandoSea){
$this->render('redireccion_javascript','ajax');
}

Con esto, lo que haces es enviarle un window.open al div de la primera
ventana, pero estoy seguro que hay otra forma más elegante de hacer
esto, jeje. ¿Conseguiste hacerlo con estos pasos? ¡Un saludo!

danilo04

unread,
Apr 23, 2009, 8:45:47 AM4/23/09
to CakePHP en Español
En el código anterior no vi bien como se abre en otra ventana
<?php
echo '<script type="text/javascript">';
echo 'window.location="http://localhost/nomdeljoc/multijugador";';
echo '</script>';
?>

Podría colocar

<?php
echo '<script type="text/javascript">';
echo 'var newWindow = window.open("http://localhost/nomdeljoc/
multijugador", '_blank'); ';
echo 'newWindow.focus();';
echo '</script>';
?>

jordicakephp

unread,
Apr 23, 2009, 10:11:35 AM4/23/09
to CakePHP en Español
Exacto, danilo04

Puse un código JavaScript que redirecciona al usuario en la misma
ventana y para que se abra otra nueva debería ser como dices. Saludos!
> > > que la accion se ejecute en una nueva ventana- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Reply all
Reply to author
Forward
0 new messages