Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/04/2013, 05:05
xokram
 
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