Foros del Web » Programando para Internet » Javascript »

Abrir página php en frame...

Estas en el tema de Abrir página php en frame... en el foro de Javascript en Foros del Web. Hola amigos,...Espero no estar en el foro equivocado, pero me dicen que el problema se produce en Javascript... Trato de hacer una aplicación que contiene ...
  #1 (permalink)  
Antiguo 30/03/2009, 22:55
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Problema de Javascript?...

Hola amigos,...Espero no estar en el foro equivocado, pero me dicen que el problema se produce en Javascript...

Trato de hacer una aplicación que contiene códigos php y javascript, mi problema es que no consigo que el archivo "recibeS.php" se abra con las opciones pasadas por programa en el frame "tabula". La instrucción "target=tabula" abre la página con selects en este frame y sólo ahí puedo elegir la/las opciones que deseo incluir en "recibeS.php" que se actualiza de forma dinámica (o sea que se me repite dos veces el archivo "testselectS.php" que contiene los scripts). Agradezco la ayuda que me puedan dar para ver qué está errado en el código Javascript, pues me dicen que el problema está en este lugar. Gracias.

La Página con frames

Código html:
Ver original
  1. <head><title>Prueba de Pags Ind. HTML</title></head>  
  2. <frameset ROWS=15%,75%,*>
  3.  
  4.        <!-- Contiene el Script -->
  5.             <frame src="testselectS.php" name="inicio"  frameborder=YES>
  6.  
  7.        <!-- "Vacío" lo uso para desplegar el archivo seleccionado -->
  8.             <frame  src="vacio.html" name="tabula" frameborder=YES align=center>  
  9.  
  10.       <!-- Estos archivos están vacíos... Habrá botones para exportar el/los archivos desplegados  -->
  11.         <frameset cols=30%,40%,*>        
  12.             <frame src="IndicadoresTabulados.html" name="frmpdf"  frameborder="YES" scrolling="no">  
  13.             <frame src="IndicadoresTabulados3.html" name="Metadatos"  frameborder="YES" scrolling="no">  
  14.             <frame src="IndicadoresTabulados2.html" name="frmexcel"  frameborder="YES" scrolling="no">  
  15.         </frameset>    
  16.  
  17. </frameset>

El código completo del archivo "testselectS.php"

Esta línea no la pude incluir...
$sel1 = Aquí va un sigo arroba$_POST['selector1'];

Código PHP/Javascript:
Ver original
  1. <!--
  2. El Código original es de autoría de Diego Romero - Driverop
  3. -->
  4.  
  5. <?php
  6. function GetContentSel2($sel) {
  7.   $result = "";
  8.   $found = FALSE;
  9.   $fh = fopen("select2.txt","r");
  10.   do {
  11.     $aux = trim(fgets($fh));
  12.     $aux = explode("=",$aux);
  13.     if ($aux[0] == $sel) {
  14.       $found = TRUE;
  15.       $result = $aux[1];
  16.     }
  17.   } while (($found == FALSE) and (!feof($fh)));
  18.   fclose($fh);
  19.   return $result;
  20. }
  21. $fillsel2 = FALSE;
  22. $sel1 = "";
  23. $request_method = $_SERVER["REQUEST_METHOD"];
  24. if ($request_method == "POST") {
  25. [B]Aquí va la línea que no permite ser incluida en el post del foro[/B]
  26.   if (!empty($sel1) and ($sel1 != "null")) {
  27.     $contentsel2 = GetContentSel2($sel1);
  28.     if (!empty($contentsel2)) { $fillsel2 = TRUE; }
  29.   }
  30. } // if reqmet
  31. ?>
  32. <html>
  33. <head>
  34. <title>Ejemplo de select dependientes</title>
  35. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  36. <script language="JavaScript" type="text/JavaScript">
  37. function Seleccionar() {
  38.   var a = document.form1.selector1.value;
  39.   if (a != "null") {
  40.      document.form1.action="";
  41.      document.form1.submit();
  42.   }
  43.   else { alert("Seleccione un valor."); }
  44. }
  45. </script>
  46.  
  47. </head>
  48. <body>
  49.  
  50. <form name="form1" method="post" action="recibeS.php">
  51.   <select name="selector1" size=3 id="selector1" onChange="javascript:Seleccionar();">
  52.     <option value="null"<?php if (empty($sel1)) { echo " selected"; }
  53.     ?>>Seleccione un valor</option>
  54.     <option value="AR"<?php if ($sel1 == "AR") { echo " selected"; }
  55.     ?>>Argentina</option>
  56.     <option value="MX"<?php if ($sel1 == "MX") { echo " selected"; }
  57.     ?>>México</option>
  58.     <option value="CO"<?php if ($sel1 == "CO") { echo " selected"; }
  59.     ?>>Colombia</option>
  60.   </select>
  61.   <select multiple name="selector2[]" id="selector2" style="width:500px" size=3>
  62. <?php
  63.   if ($fillsel2) {
  64.     $contentsel2 = explode("*",$contentsel2);
  65.     foreach($contentsel2 as $key => $value) {
  66.       $item = explode(":",$value);
  67.       echo '<option value="'.$item[0].'">'.$item[1].'</option>'."\n";
  68.     }
  69.   } // if
  70.   else {
  71. ?>
  72.     <option value="null" selected>(Vacío)</option>
  73. <?php } ?>
  74.   </select>
  75.  
  76.  
  77.   <input type="submit" name="Submit" value="Desplegar tabla(s)">
  78.  
  79. </form>
  80. </body>
  81. </html>

El Código para "recibeS.php"

Código php:
Ver original
  1. <html>
  2. <head>
  3.    <title>Ejemplo de PHP</title>
  4. </head>
  5. <body>
  6. </body>
  7. <H1>Ejemplo de procesado de formularios</H1>
  8.  
  9. <?php
  10.          
  11.                      
  12.                      foreach($_POST['selector2'] as $value) {    
  13.                      include $value;
  14.                      }
  15. ?>
  16.  
  17. </html>
  #2 (permalink)  
Antiguo 31/03/2009, 00:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema de Javascript?...

Hola:

Para enviar datos de un formulario a un frame, parece que la parte teórica la sabes, y no tiene que ver con javascript, salvo que haya una validación de por medio... y en tu código no se ve el target del form... también puedes ponerlo mediante una función, pero tampoco se ve en tu código...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 31/03/2009, 05:34
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema de Javascript?...

Gracias por responderme... Precisamente no tengo el target en el form1 porque cuando la puse se produjo el problema que describo, si me ayudaran a definir una función tal vez podría funcionar. Sólo que el resultado de la función no debe equivaler a poner el target en el form1, porque eso no funca. El funcionamiento interno de todo esto es:

1.- El usuario entra a la página. en ese momento las opciones del segundo select están vacías... sólo aparece el default "Seleccione un valor".

2.- Al momento de elegir un país, en el primer select, se ejecuta un script php en el lado del servidor que rellena las opciones del segundo select (las toma del archivo "Select2.txt", línea 9 del código de "testselectS.php")... el usuario recibe la página actualizada con las opciones para elegir... Aquí se produce la "acción" desencadenada por el target y me presenta la página del testselectS.php con las opciones del segundo select actualizadas en el frame "tabula", pero obviamente aún no se ha elegido nada en el segundo select!!!

3.- El usuario elige una o más opciones del segundo select y con el submit se envía un array por variable que se procesa en el servidor con php, actualizando la página "recibeS.php" y se devuelve la página con los archivos agregados con INCLUDE. "recibeS.php" se muestra en el frame desde el que se hizo el submit.

4.- creo que la instrucción que falta debe ir en la línea de imput, pero no se... he intentado opciones buscando en la red (soy novato en esto) y no me resultan
  #4 (permalink)  
Antiguo 31/03/2009, 12:08
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema de Javascript?...

Necesito de su ayuda por favor...
  #5 (permalink)  
Antiguo 01/04/2009, 13:59
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Abrir página php en frame...

Saludos a todos, necesito de su ayuda para encontrar la manera de abrir la página "recibeS.php" en el frame "tabula"...

El primer Select presenta opciones predefinidas, mientras que el segundo sólo presentará una opción por default. Este se "rellena" en el lado del servidor, en respuesta a la opción elegida en el primer select. Intenté con "target=tabula" en "form1", funciona... pero me vuelve a presentar la página con los select, claro que ahora con las opciones del segundo ya actualizadas... porque todavía no se han desencadenado los eventos asociados al submit, que devolverá el "recibeS.php". Esto me llevó a pensar que debo agregar una instrucción en la lnea del Input tipo submite, pero no consigo dar con qué debo poner... lo que he hecho no me funciona... ojalá alguien me pueda ayudar.

Código (sólo la sección asociada con mi problema)
Código php:
Ver original
  1. ?>
  2. <html>
  3. <head>
  4. <title>Ejemplo de select dependientes</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6.  
  7. <script language="JavaScript" type="text/JavaScript">
  8. function Seleccionar() {
  9.   var a = document.form1.selector1.value;
  10.   if (a != "null") {
  11.      document.form1.action="";
  12.      document.form1.submit();
  13.   }
  14.   else { alert("Seleccione un valor."); }
  15. }
  16. </script>
  17.  
  18. </head>
  19. <body>
  20.  
  21. <form name="form1" method="post" action="recibeS.php">
  22.   <select name="selector1" size=3 id="selector1" onChange="javascript:Seleccionar();">
  23.     <option value="null"<?php if (empty($sel1)) { echo " selected"; }
  24.     ?>>Seleccione un valor</option>
  25.     <option value="AR"<?php if ($sel1 == "AR") { echo " selected"; }
  26.     ?>>Argentina</option>
  27.     <option value="MX"<?php if ($sel1 == "MX") { echo " selected"; }
  28.     ?>>México</option>
  29.     <option value="CO"<?php if ($sel1 == "CO") { echo " selected"; }
  30.     ?>>Colombia</option>
  31.   </select>
  32.   <select multiple name="selector2[]" id="selector2" style="width:500px" size=3>
  33. <?php
  34.   if ($fillsel2) {
  35.     $contentsel2 = explode("*",$contentsel2);
  36.     foreach($contentsel2 as $key => $value) {
  37.       $item = explode(":",$value);
  38.       echo '<option value="'.$item[0].'">'.$item[1].'</option>'."\n";
  39.     }
  40.   } // if
  41.   else {
  42. ?>
  43.     <option value="null" selected>(Vacío)</option>
  44. <?php } ?>
  45.   </select>
  46.  
  47.   <input type="submit" name="Submit" value="Desplegar tabla(s)" >
  48.  
  49. </form>
  50. </body>
  #6 (permalink)  
Antiguo 01/04/2009, 14:16
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Abrir página php en frame...

sesebas no hay ningun frame en el codigo que pusiste, perdona pero no se entiende bien lo que queres hacer
  #7 (permalink)  
Antiguo 01/04/2009, 14:23
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Abrir página php en frame...

Gracias por responder. Los frames están en una página distinta a la que contiene la parte de código que puse antes... quise ahorrar espacio!

Aquí va...

Código html:
Ver original
  1. <head><title>Prueba de Pags Ind. HTML</title></head>  
  2. <frameset ROWS=15%,75%,*>
  3.  
  4.        <!-- Contiene el Script del que sólo subí una parte al inicio de mi pregunta -->
  5.             <frame src="testselectS.php" name="inicio"  frameborder=YES>
  6.  
  7.       <!-- "Vacío" lo uso para desplegar el/los archivo seleccionados que vienen en "recibeS.php" -->
  8.             <frame  src="vacio.html" name="tabula" frameborder=YES align=center>  
  9.  
  10.       <!-- Estos archivos están vacíos... Habrá botones para exportar el/los archivos desplegados  -->
  11.         <frameset cols=30%,40%,*>        
  12.             <frame src="IndicadoresTabulados.html" name="frmpdf"  frameborder="YES" scrolling="no">  
  13.             <frame src="IndicadoresTabulados3.html" name="Metadatos"  frameborder="YES" scrolling="no">  
  14.             <frame src="IndicadoresTabulados2.html" name="frmexcel"  frameborder="YES" scrolling="no">  
  15.         </frameset>    
  16.  
  17. </frameset>  
  18.  
  19. </html>
  #8 (permalink)  
Antiguo 01/04/2009, 14:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Abrir página php en frame...

Tema trasladado desde PHP
  #9 (permalink)  
Antiguo 01/04/2009, 14:32
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Abrir página php en frame...

barbaro, igual sigo un poco confundido hay un de detalle a tener en cuenta, tenes que cerrar los tags de los frame pero no tiene nada que ver con lo q queres hacer.

Creo que tendrias que hacer esto( te digo creo pq no estoy seguro de entender bien todo )
donde dice :
<frame src="vacio.html" name="tabula" frameborder=YES align=center>

ponele
<frame src="recibeS.php" name="tabula" frameborder=YES align=center>
  #10 (permalink)  
Antiguo 01/04/2009, 14:57
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Abrir página php en frame...

Ya lo había intentado, pero no es lo que necesito. Trataré de explicarme mejor y espero no agotar tu paciencia:

1.- El primer frame almacena el archivo con el código principal y presenta dos select dependientes. El punto es que el segundo se llenará de opciones cuando se elija una de las ociones del primer select.

2.- El "llenado" del segundo select se ejecuta con código php en el servidor, leyendo un archivo txt, y se actualiza en el lado del usuario para que éste elija una o más de las opciones que tiene disponible.

3. En todo esto el "recibeS.php" aún no aparece por ningún lado (por eso no me sirve que se cargue todavía - y el '< frame src="recibeS.php"... lo carga al momento de abrir la página con frames. De hecho hasta este momento el "recibeS.php" sólo tiene un script php.

4.- Una vez que se eligió una o más de las opciones en el segundo select y se presiona el botón submit, se enviá un array con valores que se ejecutan, de nuevo en el servidor, en el archivo "recibeS.php" usando código php.

5.- El resultado es la página "recibeS.php" con el contenido que se ha procesado. Es en este momento cuando necesito que se muestre en el frame "tabula"
  #11 (permalink)  
Antiguo 01/04/2009, 15:35
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Abrir página php en frame...

esta bien ahora entendi lo que queres hacer, pero lo estas haciendo muy complicado y perdona que te lo diga pero no es la manera mas adecuada.
por lo q entendi queres hacer que no se recargue la pagina y por eso pones tantos frames, lo q tenes que hacer es cambiar con javascript el src del frame "tabula" para poder enviarle los datos en el src con get.

es decir tendrias que lograr que el src del frame quede asi:
src="recibeS.php?variable=algo"

en el momento indicado ( en el paso 4 )

Tenes que crear una funcion javascript q cambie ese src. ponele al frame un id="tabula" es decir:

<frame src="vacio.html" name="tabula" id="tabula" frameborder=YES align=center>

con esta funcion vas a poner cambiar el src del frame

Código:
function CambiarSrc( )
{
	var _frame = document.getElementById('tabula');
	
/* antes de esto tenes que cargar las variables de tus select para enviarselas a ese frame  */

	var select = document.getElementById('select_id');//donde dice select_id tenes que poner el id del select
	var select_value = select.options[select.selectedIndex].value;

	_frame.src = "recibeS.php?nom_variable=" + select_value ;
_frame.contentDocument.location.reload(true);

/* Enviar con mas variables */
/*
	_frame.src = "recibeS.php?nom_variable=" + select_value + "&nom_variable2=" + select_value2 ;
*/



}

Última edición por neogabo; 01/04/2009 a las 15:41
  #12 (permalink)  
Antiguo 01/04/2009, 15:50
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Abrir página php en frame...

Gracias por toda la ayuda que me estás dando.

Haré lo que me dices para ver que tal me va y, bueno como mi interés último es aprender una vez que lo consiga tener funcionando todo, volveré atrás para buscar opciones de optimizar la aplicación y hacer las cosas de manera más adecuada. a tu comentario sumo también el buscar alternativas al uso de frames y a la utilización de includes, esto último en el script del archivo "recibeS.php" que no he incluído en este post.

Apareceré de nuevo para comentar el resultado que consiga al seguir tu sugerencia.

Saludos.
  #13 (permalink)  
Antiguo 01/04/2009, 15:58
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Abrir página php en frame...

me parece muy bien que busques optimizar. podrias probar con ajax, pero es bastante mas avanzado

Saludos
  #14 (permalink)  
Antiguo 01/04/2009, 23:04
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Abrir página php en frame...

Hola Neogabo,

Disculpa que esté aquí de nuevo, pero no consigo que me funcione. Además tengo una pregunta: en el código que me propones incluyes una línea con referencia a que antes debo cargar "las variables de mis select para mandárselas al frame 'tabula'", pero las variables ya funcionan bien y ésta(s) se pasan por programa al archivo "recibeS.php". el problema que tengo es que éste último archivo se actualiza de manera dinámica y se abre bien con las opciones elejidas en los select... sólo que no se abre en el frame que necesito.

Incluyo el código del archivo "RecibeS.php" con el que se reciben las variables provenientes de los select y se actualiza la página.

Código en "recibeS.php" (Funciona bien)
Código php:
Ver original
  1. <html>
  2. <head>
  3.    <title>Ejemplo de PHP</title>
  4. </head>
  5. <body>
  6. </body>
  7. <H1>Ejemplo de procesado de formularios</H1>
  8.  
  9. <?php
  10.          
  11.                      
  12.                      foreach($_POST['selector2'] as $value) {    
  13.                      include $value;
  14.                      }
  15. ?>
</html>

Ojalá me puedas seguir ayudando. Gracias.
  #15 (permalink)  
Antiguo 02/04/2009, 05:37
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Abrir página php en frame...

Gracias permalink por reunir en un solo lugar las preguntas que he subido al foro en torno a lo que estoy haciendo y mantener activo mi tema... Ahora espero que alguien más se sienta motivado a ayudarme para seguir adelante.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.