Mar Ago 07, 2007 9:27 am
|
 |
marcosss
Perlero Nuevo

|
Registrado: 14 May 2007
Mensajes: 87
|
|
| Redirigir ventana desde un iframe |
|
|
¡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: |
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: |
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 |
|
|
|

Mar Ago 07, 2007 10:06 am
|
 |
marcosss
Perlero Nuevo

|
Registrado: 14 May 2007
Mensajes: 87
|
|
|
|
|
| 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? |
|
Mar Ago 07, 2007 10:30 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1361
Ubicación: México
|
|
| Re: Redirigir ventana desde un iframe |
|
|
Umm, ya no entiendo, tu dices:
| marcosss escribió: | | 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? |
|

Mar Ago 07, 2007 11:13 am
|
 |
marcosss
Perlero Nuevo

|
Registrado: 14 May 2007
Mensajes: 87
|
|
|
|
|
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? |
|

Mar Ago 07, 2007 1:11 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3841
Ubicación: Valladolid, España
|
|
|
|
|
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. |
|

Mie Ago 08, 2007 1:24 am
|
 |
marcosss
Perlero Nuevo

|
Registrado: 14 May 2007
Mensajes: 87
|
|
|
|
|
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.
Una parte del código del script opciones alumno (donde se declaran las pestañas y el iFrame) es:
| PHP: | echo'   <a class="tab" href="http://localhost/sitioPrueba/Alumnos/Academicos/medidasRecibidasCentro.php?DNIAlumno='.$dni.'" target="tabIframe2">Medidas recibidas en el centro</a>';
echo'   <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.
| PHP: | 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
Ultima edición por marcosss el Mie Ago 08, 2007 4:21 am, editado 1 vez |
|

Mie Ago 08, 2007 3:50 am
|
 |
marcosss
Perlero Nuevo

|
Registrado: 14 May 2007
Mensajes: 87
|
|
|
|
|
| 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? |
|

Mie Ago 08, 2007 5:01 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3841
Ubicación: Valladolid, España
|
|
|
|
|
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. |
|

Mie Ago 08, 2007 5:11 am
|
 |
marcosss
Perlero Nuevo

|
Registrado: 14 May 2007
Mensajes: 87
|
|
|
|
|
| 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. |
|

Mie Ago 08, 2007 7:45 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1361
Ubicación: México
|
|
|
|
|
Creo que entiendo un poco más lo que necesitas. Ya ví cuales son los tres marcos que comentas, pero hay un detalle, el tercer iframe, es un hijo del segundo iframe, así que si refrescas la página del segundo iframe a fuerza también recargará el tercer iframe.
Si tu quieres cambiar el contenido del segundo iframe sin tener que recargar el tercer iframe entonces tendrás que buscar otra solución, pues lo que estás haciendo no te funcionará. Lo más seguro es que vas a necesitar usar Ajax, o de plano replantear todo el problema.
Saludos |
|

Mie Ago 08, 2007 8:03 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3841
Ubicación: Valladolid, España
|
|
|
|
|
O quizás la solución sea hacer tres frames separados sobre una misma página. Casi mejor que los convierta a <div>... no sé... se me ocurren varias formas...
Yo tengo una página parecida, hecha con frames, en el que se da un caso parecido: http://www.arfacyl.org, en la sección Adopción Internacional. Aparecen hasta tres niveles de detalle (en el submenú Fin del proceso). |
|
Mie Ago 08, 2007 8:51 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1361
Ubicación: México
|
|
|
|
|
| explorer escribió: | | O quizás la solución sea hacer tres frames separados sobre una misma página. Casi mejor que los convierta a <div>... no sé... se me ocurren varias formas... |
Tienes razón, creo que lo mejor es que en vez de usar iframes, use frames, de esa manera puede refrescar cualquiera sin afectar el otro. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|