Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/10/2009, 07:45
sergiop21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: Select Name depende de otro Select

hola mira yo lo eh hecho con javascript aca te paso el codigo para que lo puedas hacer?
Código:
      // Función que rellena el segundo combo según el valor seleccionado en el primero.
      // Se le pasa como parámetro el nombre del formulario desde el cuál se llama a la función,
      // de ésta manera podemos llamarlo desde combos con el mismo nombre en una misma página pero
      // desde distintos formularios.
      function rellenaCombo(formulario)
      {
        with (document.forms[formulario])  // Establecemos por defecto el nombre formulario pasado para toda la función.
        {
          var centro = id_centro[id_centro.selectedIndex].value; // Valor seleccionado en el primer combo.
          var n = id_empleado.length;  // Numero de líneas del segundo combo.
          
          id_empleado.disabled = false;  // Activamos el segundo combo.
          
          for (var i = 0; i < n; ++i)
            id_empleado.remove(id_empleado.options[i]); // Eliminamos todas las líneas del segundo combo.
          
          id_empleado[0] = new Option("Seleccione Subtipo", 'null'); // Creamos la primera línea del segundo combo.
          
          if (centro != 'null')  // Si el valor del primer combo es distinto de 'null'.
          {
   <?php
   // CODIGO PHP
    // Para cada centro, construimos el segundo combo con los empleados del mismo.
$db = Conec_con_pass();
    
    $cons_cen = @pg_exec($db, "SELECT * FROM tipo;");
    
    for ($l = 0; $l < pg_numrows($cons_cen); ++$l)
    {
     $cen = @pg_fetch_object($cons_cen, $l);
   ?>
            if (centro == '<?php echo $cen->idtipo;?>')
            {
    <?php
    // CODIGO PHP
      // Construimos los valores del segundo combo con los empleados del centro.
      $cons_emp = @pg_exec($db, "SELECT * FROM stock WHERE idtipo = ".$cen->idtipo." ORDER BY subtipo;");
      
      for ($m = 0; $m < pg_numrows($cons_emp); ++$m)
      {
       $emp = @pg_fetch_object($cons_emp, $m);
    ?>
              id_empleado[id_empleado.length] = new Option("<?php echo $emp->subtipo;?>", '<?php echo $emp->idstock;?>');
    <?php
    // CODIGO PHP
      }
    ?>
            }
   <?php
   // CODIGO PHP
    }
   ?>
            id_empleado.focus();  // Enviamos el foco al segundo combo.
          }
          else  // El valor del primer combo es 'null'.
          {
            id_empleado.disabled = true;  // Desactivamos el segundo combo (que estará vacío).
            id_centro.focus();  // Enviamos el foco al primer combo.
          }
          
          id_empleado.selectedIndex = 0;  // Seleccionamos el primer valor del segundo combo ('null').
        }
      }
Código HTML:
<form name="datos" method="post" action="...">
<td >Tipo</td>		
		 <td ><span class="Estilo6" >
    	   <select name="id_centro" onChange="rellenaCombo('datos');" onblur="validar()">
              <option value="null" selected>Seleccione Tipo
              <option  value="otro">otro
              
			<?php
			// CODIGO PHP
			 // Contruimos el primer combo con los valores de la tabla 'centros'.
			 $cons_centros = @pg_exec($db, "SELECT * FROM tipo;");
			 
			 for ($k = 0; $k < pg_numrows($cons_centros); ++$k)
			 {
			  $centro = @pg_fetch_object($cons_centros, $k);
			  echo "              <option id=\"".$centro->tipo."\" value=\"".$centro->idtipo."\">".$centro->tipo."\n";
			 }
			?>
			          </select>
        </td>
        <td>
          <select name="id_empleado" disabled>
            <option value="null">Seleccione Subtipo
          </select>
    	</span>