Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/06/2009, 18:42
sesebas
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Puede que no sea tan facil... Mantener opción seleccionada después de PHP!

Hola amigos,

Tengo tres select dependientes y los dos últimos se "llenan" con opciones en el lado del servidor ejecutando PHP.
El problema que se me presenta es que al seleccionar una opción del segundo select para "llenar" el tercero, la página recargada no "pinta" la opción que he seleccionado... como si no tuviera el selected. Sin embargo funciona bien, sólo que si quisiera ver cuál fue la opción que elegí del segundo select, no tendría forma de hacerlo pues ninguna aparece pintada, como si aparece lo que haya seleccionado en el primer select... cómo hacer para no perder el destacado de la opción seleccionada cuando se recarga la página?

Gracias por la ayuda que me puedan dar...

... Al hacer click en el segundo select se desencadena:

Código PHP:
Ver original
  1. <select name="selector2" id="selector2" style="width:308px" size=3 onChange="javascript:Seleccionar2();" >                                         
  2.     <?php                                                                                                                                                  
  3.           if ($fillsel2) {                                                                                                                                 
  4.             $contentsel2 = explode("*",$contentsel2);                                                                                                      
  5.                                                                                                                                                            
  6.                                                                                                                                                            
  7.             foreach($contentsel2 as $key => $value) {                                                                                                      
  8.               $item = explode(":",$value);                                                                                                                     
  9.                                                                                                                                                            
  10.               print_r ($_item);                                                                                                                                
  11.                                                                                                                                                            
  12.               echo '<option value="'.$item[0].'">'.$item[1].'</option>'."\n";                                                                                  
  13.                                                                                                                                                            
  14.             }                                                                                                                                              
  15.           } // if                                                                                                                                          
  16.           else {                                                                                                                                           
  17.     ?>                                                                                                                                                     
  18.     <option value="null" selected>(Vacío)</option>                                                                                                     
  19.     <?php } ?>                                                                                                                                             
  20.                                                                                                                                            
  21. </select>

... La función seleccionar2()

Código Javascript:
Ver original
  1. function Seleccionar2()
  2. {
  3.   var b = document.form1.selector2.value;
  4.  
  5.       if (b != "null")
  6.        {
  7.          document.form1.action="";
  8.              document.form1.target="";
  9.            document.form1.submit();
  10.        }
  11.      else {
  12.                  alert("Debe seleccionar una opción.");
  13.                 }
  14. }
  15. </script>

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