Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Select Name depende de otro Select

Estas en el tema de Select Name depende de otro Select en el foro de Frameworks JS en Foros del Web. Hola, He visitado varias págnas sobre ese tema pero no he conseguido solucionar mi problema. Tengo un Select Name con una consulta mysql. De allí ...
  #1 (permalink)  
Antiguo 19/10/2009, 16:42
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Select Name depende de otro Select

Hola,

He visitado varias págnas sobre ese tema pero no he conseguido solucionar mi problema.

Tengo un Select Name con una consulta mysql.

De allí quiero que se actualice mi segunda lista (select).

He intentado varias cosas pero sin resultado.

Aquí mi código:

<script languaje="javascript">
function validar(form)
{

if (form.select1.options[form.select1.selectedIndex].value == "")
{
alert("Por favor, seleccione una opción válida");
form.select1.focus(); return true;
}
form.submit();
}

</script>


</head>

<body>

<?php
include("p_conectar.php");
$link=Conectarse();
$cat=$_POST ['select1'];
?>



<h1>Búsquedas</h1>


<form name="form" id="form" action="busqueda_resultado.php" method="post" class="Estilo_1">

<select name="select1" id="select1" size="1" onchange="cargarSelect();">
<option value='0' selected>Seleccione una categoría</option>
<?

$rs = mysql_query("SELECT cod_cat, categoria FROM categoria ORDER BY categoria",$link);
$nr = mysql_num_rows($rs);
for ($i=0; $i<$nr; $i++) {
$r = mysql_fetch_array($rs);
echo "<OPTION VALUE=\"".$r["cod_cat"]."\">".$r["categoria"]."</OPTION>";
}

?>

</select>

<select name="select2" id="select2" size="1">
<option value='0' selected>Seleccione una sub-categoría</option>
<?
$result = mysql_query("SELECT cod_subcat, subcategoria FROM subcategoria
WHERE cod_cat like '".$cat."%'
ORDER BY subcategoria ASC",$link);
$nr = mysql_num_rows($result);
for ($i=0; $i<$nr; $i++) {
$res = mysql_fetch_array($result);
echo "<OPTION VALUE=\"".$res["cod_subcat"]."\">".$res["subcategoria"]."</OPTION>";
}
?>
</select>


<br />

<input name="submit" type="submit" value="Procesar" />

</form>


Si alguien tiene alguna solución o idea ... sea el bienvenido.

Gracias

Jo
  #2 (permalink)  
Antiguo 19/10/2009, 16:44
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: Select Name depende de otro Select

Osea tenes un combo, y depende de lo que elijas en ese combo se actualiza otro?
Eso se hace con ajax, vas a tener q aprender a usarlo para que te salga.

Saludos.
  #3 (permalink)  
Antiguo 20/10/2009, 07:38
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Select Name depende de otro Select

Hola,

Gracias por la información.


Me puedes dar una pista para empezar a solucionar ese problema con Ajax ?


Saludos

Jo
  #4 (permalink)  
Antiguo 20/10/2009, 07:45
 
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> 
  #5 (permalink)  
Antiguo 20/10/2009, 09:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Select Name depende de otro Select

Mensaje trasladado desde PHP a AJAX
  #6 (permalink)  
Antiguo 21/10/2009, 16:51
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Select Name depende de otro Select

Gracias a todos por su ayuda ....

Problema resuelto.

Saludos
  #7 (permalink)  
Antiguo 08/02/2010, 11:05
 
Fecha de Ingreso: febrero-2009
Mensajes: 60
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Select Name depende de otro Select

y si lo que tiene k cargar en el segundo no esta en la base de datos sino en un fichero como se haria?
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 17:00.