• Publicidad

Redirigir ventana desde un iframe

Discute todo acerca de JavaScript así como DHTML o la tecnología AJAX.

Redirigir ventana desde un iframe

Notapor marcosss » 2007-08-07 10:27 @477

¡Hola!

Estoy programando en PHP y JavaScript y tengo un problemilla, a ver, el usuario está editando unos datos y pulsa en el botón guardar y el script que guarda los datos se ejecuta, pero no muestra nada por pantalla. Sólo quiero que redirija al usuario a otra página. Uso META pero no me funciona:

Código: Seleccionar todo
echo' <META HTTP-EQUIV="REFRESH" CONTENT="0;URL=http://localhost/sitioPrueba/Alumnos/opcionesAlumno.php?DNIAlumno='.$dni.'">';


Porque en opcionesAlumno yo muestro la información en un iFrame, el código:

Código: Seleccionar todo
echo'<iframe class="pestana" name="tabIframe2" src="http://localhost/sitioPrueba/Alumnos/Personales/datosPersonales.php?DNIAlumno='.$dni.'"  marginheight="10" marginwidth="30" height="600" width="1040" frameborder="1"></iframe>';
echo'  </div>


Entonces lo que META me hace es que me carga la página bien, pero dentro del iFrame, y yo no quiero que me cargue la página dentro del iFrame porque me sale información repetida, quiero que me cargue el marco en el que está el iFrame.

Pero no sé como indicarle a la etiqueta META o usar otra etiqueta que me cargue bien la página.

Si pudierais ayudarme... Muchas gracias
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Publicidad

Notapor kidd » 2007-08-07 10:45 @489

Tienes dos opciones:

1. Haces que al cliquear el botón enviar el formulario envíe las cosas a la ventana padre poniendo su target de la siguiente manera:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form target="_top"> 


o

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form target="_parent"> 



2. En vez de realizar un meta refresh usas un JavaScript de la siguiente manera:

Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
top.location = URL
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor marcosss » 2007-08-07 11:06 @504

Me funciona, pero eso me lo recarga en la página completa, yo quiero recargarlo sólo en un marco de esa página ¿se podria?
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Re: Redirigir ventana desde un iframe

Notapor kidd » 2007-08-07 11:30 @521

Umm, ya no entiendo, tu dices:

marcosss escribiste:Entonces lo que META me hace es que me carga la página bien, pero dentro del iFrame, y yo no quiero que me cargue la página dentro del iFrame porque me sale información repetida, quiero que me cargue el marco en el que está el iFrame.


Y parece que el problema es que te está cargando la página dentro del iFrame ¿no es eso lo que quieres?
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor marcosss » 2007-08-07 12:13 @551

si, pero a ver, en la página que contiene el iframe hay una parte que no está dentro del iframe, que la uso a modo de pestañas para moverse por las distintas opciones, y dentro del iframe cargo las distintas páginas según el usuario pulse en uno u otro lugar.
Pero con el META dentro del iFrame me carga la página entera, es decir, que me vuelven a salir todas las pestañas, y eso es lo que no quiero, que salgan las pestañas, sólo quiero que salga dentro del iframe la página que haya que cargar.

¿queda más claro ahora?
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Notapor explorer » 2007-08-07 14:11 @632

Yo no creo que haga falta nada de Meta para hacer un refresh y lleve a otro sitio, sino que el problema está en el origen.

El primer formulario que comentabas más arriba hace la llamada al script pero puede indicar cual es el objetivo en donde debe aparecer el resultado, y si el script del servidor que devuelve la llamada no es capaz o no debe de generar la página, puede por si mismo generar una cabecera HTTP tipo Location: y de esa manera te ahorras un meta refresh. El resultado saldrá en el frame indicado por el primer formulario.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor marcosss » 2007-08-08 02:24 @142

He probado con Location, pero tengo el mismo problema, me carga dentro del iFrame toda la página nueva (hasta las pestañas que no quiero que me cargue), adjunto una imagen para mostrar lo que me da como resultado al ejecutar el Location.

Imagen

Una parte del código del script opciones alumno (donde se declaran las pestañas y el iFrame) es:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. echo'&nbsp&nbsp <a class="tab" href="http://localhost/sitioPrueba/Alumnos/Academicos/medidasRecibidasCentro.php?DNIAlumno='.$dni.'" target="tabIframe2">Medidas recibidas en el centro</a>'; 
  2.  
  3. echo'&nbsp&nbsp <a class="tab" href="http://localhost/sitioPrueba/Alumnos/Grupos/gruposAlumno.php?DNIAlumno='.$dni.'" target="tabIframe2">Grupos a los que pertenece</a> 


Antes en el resto del código de opcionesAlumnos se han definido todos los href de todas las pestañas.

Aqui muestro el código para que cuando el usuario pulse por ejemplo sobre la pestaña medidasRecibidasCentro se me muestre en el iFrame tabIFrame2.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. echo'<iframe class="pestana" name="tabIframe2" src="http://localhost/sitioPrueba/Alumnos/Personales/datosPersonales.php?DNIAlumno='.$dni.'" marginheight="10" marginwidth="30" height="600" width="1040" frameborder="1"></iframe>'; 


Y aquí está declarado el iFrame, que por defecto le digo que al principio me muestre datosPersonales (aun estamos en opcionesAlimno).

Y ahora viene el problema, estoy por ejemplo guardando los datosFamiliares del alumno, y al terminar, como es un script que no escribe nada quiero que me redirija por ejemplo a mostrar lo que mostramos por defecto al principio, datosPersonales, pero no me sale y lo he intentado de múltiples formas:

- <META HTTP-EQUIV="REFRESH" CONTENT="0;URL=http://localhost/sitioPrueba/Alumnos/opcionesAlumno.php?DNIAlumno='.$dni.'">: el resultado es el mismo que en la imagen, me vuelve a mostrar todas las pestañas.
- <script>top.location ="http://localhost/sitioPrueba/Alumnos/opcionesAlumno.php?DNIAlumno='.$dni.'"</script> me muestra todo bien, no me muestra las pestañas ya, pero me lo muestra en una página completa, no en el marco correspondiente (la página tiene 3 marcos y todo de lo que estoy hablando tiene que aparecer en el marco principal).
- <script>history.go(0)</script> Me pregunta que la página que intento ver tiene POSDATA...

Como veis estoy un poco perdido con este tema, no sé como seguir, espero que el problema quede bien explicado, si pudierais echarme una mano... Muchas gracias
Última edición por marcosss el 2007-08-08 05:21 @264, editado 1 vez en total
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Notapor marcosss » 2007-08-08 04:50 @243

Creo que ya lo tengo, en vez de llamar a opcionesAlumno llamo a datosPersonales aunque no me funciona del todo, porque no me refresca las pestañas, yo para refrescar hasta ahora usaba un history.go(0) que se ejecutaba con un onclic en un botón. Ahora lo pongo después de redirigir (es decir, sin el onclic, se ejecutaría directamente) pero me sale que la página contiene POSTDATA... ¿cómo podría hacer para refrescar el marco sin que me saliera el mensaje de POSTDATA?
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Notapor explorer » 2007-08-08 06:01 @292

En teoría, valdría con hacer que el script devolviera un Location: del href de datosPersonales, que es lo que comentas ahora.

Pero ahora lo que quieres es que refresque además el estado de las pestañas, que creo que te refieres a las del menú izquierdo. No veo otra opción que recargar toda la página para que los menús aparezcan con la opción de datos personales pulsada, como si la hubiera pulsado un usuario. O hacer que el menú esté en otro iframe o div y cambiar su contenido.

Si, por ejemplo, el método de pulsación de los botones es un procedimiento hecho en JavaScript que hace el sistema de cambio de imagen del botón (y de toda la barra de navegación), quizás sea tan fácil como llamar a ese método como si fuera una pulsación normal.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor marcosss » 2007-08-08 06:11 @299

No me refiero a las pestañas de la izquierda, digo las de la parte superior, se ven en la imagen: Datos Personales, Datos Familiares, Datos académicos anteriores... que en realidad se escriben en opcionesAlumno, justo antes del iFrame (en algún mensaje anterior he puesto el código de cómo muestro medidasRecibidasCentro y gruposAlumno). Es que por lo que quiero que las refresque es porque por ejemplo en DatosFamiliares, si se eliminan, en las pestañas debe aparecer Crear Datos Familiares y no Datos Familiares.
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Siguiente

Volver a JavaScript

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron