Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/05/2009, 13:00
sesebas
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Pagina se carga a la izquierda en IExplorer

Gracias por responder y la sugerencia, pero no quería cansarlos con el código que es un poco largo. Trataré de resumir...

La aplicación: Busca desplegar tablas, en un frame, obtenidas de excel y exportadas a html. Se llega a ellas a través de tres select montados en una página que se muestra en un frame distinto al de despliegue de las tablas. Trabaja con tres páginas: A) la página de frames (dos). B) La que contiene el form con los select y los scripts. C) La que recibe la referencia a los html con la tablas a mostrar y que se procesa o llena con PHP en el servidor.

El Funcionamiento: 1.- Entro a la página... Todo viene centrado. 2.- Elijo un país en el 1er select y se activa una función Javascript que recoge la opción seleccionada... hago un submit del form... se ejecuta script PHP... se llenan las opciones que aparecerán en el segundo select para que el usuario seleccione una de ellas... se recarga la página. Continuan otras acciones hasta llegar a desplegar la o las tablas seleccionadas, pero es en este punto la página "de selects" contenida en el primer frame y que devuelve el select 1 tal como "se fue" y trae el 2 con las opciones disponibles (el 3 todavía no se ha tocado) se recarga de manera descentrada y alineada a la izquierda... en el IExplorer.

El código. (sólo un resumen para no cansar)

El desastre se comienza a generar con el onchange asociado al select 1. Entonces aquí va parte de este.

Código PHP:
Ver original
  1. <form name="form1" method="post" action="http://localhost/recibeS.php" target="inicio" >
  2.  
  3.   <select name="selector1" size=3 id="selector1" onChange="javascript:Seleccionar();">
  4.     <option value="null"<?php if (empty($sel1)) { echo " selected"; }?>>Seleccione un valor</option>
  5.     <option value="AR"<?php if ($sel1 == "AR") { echo " selected"; } ?>>Argentina</option>
  6.     <option value="BO"<?php if ($sel1 == "BO") { echo " selected"; } ?>>Bolivia</option>
  7.     |
  8.     |... más opciones...
  9.  </select>
La función seleccionar()
Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/JavaScript">
  2.  
  3. function Seleccionar()
  4. {
  5.      document.form1.selector3.selectedIndex = -1;
  6.  
  7.    var a = document.form1.selector1.value;
  8.  
  9.   if (a != "null")
  10.      {
  11.          document.form1.action="";
  12.              document.form1.target="";
  13.            document.form1.submit();
  14.        }
  15.   else {
  16.         alert("Debe seleccionar un país.");
  17.        }
  18. }
  19.  
  20. </script>

Aquí se produjo el evento submit del form con POST y se va a ejecutar código PHP en el servidor para llenar las opciones que estarán disponibles en el segundo select... la página se recarga una vez hecho esto...aquí va:

Código PHP:
Ver original
  1. <?php
  2.     function GetContentSel2($sel) {
  3.          
  4.           $result2 = "";
  5.           $found2 = FALSE;
  6.           $fh2 = fopen("http://localhost/AreaTematica.txt","r");
  7.           do {
  8.             $aux2 = trim(fgets($fh2));
  9.             $aux2 = explode("=",$aux2);
  10.             if ($aux2[0] == $sel) {
  11.               $found2 = TRUE;
  12.               $result2 = $aux2[1];
  13.             }
  14.           } while (($found2 == FALSE) and (!feof($fh2)));
  15.           fclose($fh2);
  16.           return $result2;
  17.         }
  18.         $fillsel2 = FALSE;
  19.         $sel1 = "";
  20.         $request_method = $_SERVER["REQUEST_METHOD"];
  21.         if ($request_method == "POST") {
  22.           $sel1 = @$_POST['selector1'];
  23.  
  24.                 echo "<script language=JavaScript>";
  25.                         echo "window.onload=function(){document.form1.elements[3].disabled=true;};";
  26.                     echo "</script>";
  27.  
  28.           if (!empty($sel1) and ($sel1 != "null")) {
  29.  
  30.             $contentsel2 = GetContentSel2($sel1);
  31.  
  32.             if (!empty($contentsel2)) { $fillsel2 = TRUE; }
  33.           }
  34.  
  35.         } // if reqmet
  36.        
  37. ?>
  38.  
  39. <?php

Bueno, ahí está... cuando la página que tiene los select se recargue en el frame que le corresponde aparecerá cargada a la izquierda si estoy usando IE, porque en FF, todo esto va bien. Ojalá me puedan ayudar, porque ya no se dónde buscar. También me parece importante comentarles que lo poco que se, de trabajar con HTML, PHP y Javascript lo he ido aprendiendo en el contexto de hacer esta aplicación, asi es que cualquier ayuda que me den tendrá demasiado valor para mi.

Gracias y perdonen la extensión.