Foros del Web » Programando para Internet » PHP »

Puede que no sea tan facil... Mantener opción seleccionada después de PHP!

Estas en el tema de Puede que no sea tan facil... Mantener opción seleccionada después de PHP! en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/06/2009, 18:42
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 2 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. ?>
  #2 (permalink)  
Antiguo 11/06/2009, 19:08
Avatar de piojoman  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 19 años, 3 meses
Puntos: 3
Respuesta: Puede que no sea tan facil... Mantener opción seleccionada después de PHP!

me parece que ahi tiene que intervenir JavaScript... con PHP lo que podes hacer es que cuando recargue la pagina usa una variable guardando la posicion del select seleccionado... cuando recargue y no este mas pintado, lo vuelves a hacer con JavaScript y la posicion ya la sabes... obvio que usando GET o POST.

creo que la propiedad es indexselect o algo asi...
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 14:45.