Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Seleccionar un select y que salga otro debajo

Estas en el tema de Seleccionar un select y que salga otro debajo en el foro de Javascript en Foros del Web. No se como explicarlo lo voy a intentar, tengo un select que en el se encuentran valores de la base de datos, una vez seleccione ...
  #1 (permalink)  
Antiguo 28/04/2013, 16:00
 
Fecha de Ingreso: abril-2013
Mensajes: 9
Antigüedad: 11 años, 6 meses
Puntos: 0
Seleccionar un select y que salga otro debajo

No se como explicarlo lo voy a intentar, tengo un select que en el se encuentran valores de la base de datos, una vez seleccione ese salga otro debajo que ara una nueva consulta dependiendo del valor que tenga el select primero y otro tercer select que depende del select segundo.

pongo el código de todo a ver si así se entiende mejor.

Código:
    
<?php
$sql="SELECT * from grupo where habilitado='SI'";
$sql1="SELECT * from servicio where habilitado='SI' and id_grupo="select grupo" ";
$sql2="SELECT * from lista_opcines where habilitado='SI' and id_servicio="select servicio" ";
$result=mysqli_query($c, $sql)
$result1=mysqli_query($c, $sql1)
$result2=mysqli_query($c, $sql2)
$row=mysqli_fetch_array($result);
$row1=mysqli_fetch_array($result1);
$row2=mysqli_fetch_array($result2);
echo "<table border='0' align='center'>
  <form class='formu' action='../pedido.php' method='POST' name='formu'>    
    <tr>
      <td> Grupo: 
        <select name='grupo'>
          <option value=".$row["id_grupo"].">".$row["grupo"]."</option>
        </select>
      </td>
    <tr>
      <td>
        <select name='servicio'>
          <option value=".$row1["id_servicio"].">".$row1["servicio"]."</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>
        <select name='opciones'>
          <option value=".$row2["id_lista"].">".$row2["lista"]."</option>
        </select> 
      </td>
    </tr>
    <tr>
      <td align='center'>
        <input type='submit' value='Realizar Pedido' name='enviar'>
      </td>
    </tr>
  </form>
</table>";
?>
de javascrit no tengo ni idea la verdad :S

Un saludo y gracias
  #2 (permalink)  
Antiguo 29/04/2013, 03:34
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 15 años, 4 meses
Puntos: 22
Respuesta: Seleccionar un select y que salga otro debajo

Hola, no acabo de entender que selects es el que controla a los otros, y como deberían mostrarse u ocultarse. ¿Podrías poner el código HTML generado y comentar como debería funcionar? Gracias.
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #3 (permalink)  
Antiguo 29/04/2013, 05:05
 
Fecha de Ingreso: abril-2013
Mensajes: 9
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Seleccionar un select y que salga otro debajo

al final buscando he encontrado algo parecido a lo que quiero y aun me quedan cosas por implementar pongo el código completo y lo comento.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php
$c=mysqli_connect ("127.0.0.1","root","","basededatos");

?>

<html>      
    <head>
      <script language='JavaScript'> <!-- Función que recoge el valor del segundo select -->
		 function ComponerLista(xser) {
			document.forms.formu.selgrupo.disabled = true;
			document.forms.formu.selservicio.length = 0;
			Cargarservicio(xser);
			document.forms.formu.selgrupo.disabled = false;
		}

		function Cargarservicio(xgru) {   <!-- Función a la que se le introduce el valor del primer select -->
			var o
			document.forms.formu.selservicio.disabled=true;
			<?php
			# consulto los servicios que este habilitados

			$tablaservicio = mysqli_query( $c, 'SELECT * FROM servicio where habilitado="SI" ORDER BY servicio ASC');  
			while ($registroservicio = mysqli_fetch_array($tablaservicio)) {
			?>
			if (xgru == <?php echo $registroservicio["id_grupo"]; ?>) {
			o = document.createElement("OPTION");
			o.text = '<?php echo $registroservicio["servicio"]; ?>';
			o.value = <?php echo $registroservicio["id_servicio"]; ?>;
			document.forms.formu.selservicio.options.add (o);
			}
			<?php
			}
			?> 
			document.forms.formu.selservicio.disabled=false;
		} 
		</script>
  	</head>
    <body>
		 <?php

			$sql="SELECT * from grupo where habilitado='SI'";
		   	$result=mysqli_query($c, $sql);
		   	?>
		    <table border='0' align='center'>
		    	<form class='formu' action='' method='POST' name='formu' id='formu'>
		      	<tr>
		      		<td> Grupo: </td>
		      		<td> <!-- creo un select y le aplico los valores de la tabla grupo -->
			      		<select name='selgrupo' id='selgrupo' onchange='ComponerLista(document.forms.formu.selgrupo[selectedIndex].value);'>
							<?php while ($row=mysqli_fetch_array($result)) { ?>
						  	<option value=<?php echo $row["id_grupo"] ?>><?php echo $row["grupo"] ?></option>
						  	<?php } ?>
					  	</select>
				  	</td>
				    <br>
				</tr>
			    <tr> 
				    <td> Servicio: </td><td>
				    	<!-- en este select muestro los resultados de la tabla servicio que coincida con su clave ajena el id_grupo-->
					    <select name='selservicio' id='selservicio' onchange='Componeropcion(document.forms.formu.selgrupo[selectedIndex].value);'>
						</select></td>
				</tr>
				<tr>
				    <td align='center' colspan=2><input type='submit' value='Realizar Pedido' name='enviar'></td>
			    </tr>
		    </table>
		             
		
	</body>
</html>
no esta muy comentado el código ahora lo que he conseguido es que haga 2 combox tengo que agregarle un combo mas y lo que queria
es que hasta que no eligiese un grupo no saliese nada del servicio pero así me valdría.
tengo que mostrar el grupo
recupero el id_grupo y muestro los servicios que tengan el id_grupo igual que el id_grupo del la tabla grupo
ahora si en la tabla servicio tiene la opción extra en SI tendría que mostrarme un input para poder introducirla, si en el campo opciones tiene un SI tiene que mostrar un campo select con las opciones y por ultimo pues un input y el submit para enviar los datos y grabarlos en una base de datos.

un jaleo yo estoy en ello a ver si alguien me puede ayudar a hacerlo lo mejor posible ya que mis soluciones creo que no son de lo mejor...

Un saludo y gracias
  #4 (permalink)  
Antiguo 29/04/2013, 08:10
 
Fecha de Ingreso: abril-2013
Mensajes: 9
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Seleccionar un select y que salga otro debajo

lo he solucionado con php sin nada de javascrit ya que no tengo ni idea de el me ha salido mucho código pero funciona :D

Un saludo y gracias :D

Etiquetas: debajo, input, php, select
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 07:04.