| |||
Yo lo que haria seria cada vez que cambiases la marca, volver a ejecutar la consulta mysql enviando el parametro necesario select * from MODELOS where idmarca=$parametro $parametro seria un valor numerico que podria ser el value de la opcion selecionada del combo marcas. y el value de marcas lo podrias cargar con el identificador de la tabla MARCAS, te parece? |
| |||
Combobox dinamico Mira, yo he tenido el mismo problema que vos, y lo solucione usando frames, o sea el primer combo lo ponia en un formulario en el primer frame y luego pasaba los datos al segundo formulario que se encontraba en el segundo frame, lo hice en php. Te paso los codigos para que te guies: Este es el que va en la pagina index o sea la contenedora de los frames. <frameset rows="25%,25%,25%,25%"> <frame src="marco1.php"> <frame src="marcos3.php" name="principal" frameborder="yes" bordercolor="#0000CC"> <frame src="marcos3.php" name="secundario" frameborder="yes" bordercolor="#0000CC"> <frame src="marcos3.php" name="terciario" frameborder="yes" bordercolor="#0000CC"> --------------------- Este es el codigo del primer frame llamado marco1.php donde me conecto a la base de datos, y hago una consulta y la muestro en el combo. <form method="post" action="marco2.php" target="principal"> <? include ("conexion.php"); $sql="SELECT * FROM Personas"; $res=odbc_exec($conn,$sql); print (" <tr> <td><select name=\"pais\" onchange=\"submit();\"> "); if (!isset($pais)){ print ("<option selected>Seleccione el pais</option>"); $pais="0"; } $sql="select * from TB_Pais"; $res=odbc_exec($conn,$sql); while($fila=odbc_fetch_array($res)){ print("<option value=\"$fila[IdCodigo]\""); if ($fila['IdCodigo'] == $pais) { print ("selected"); } print(">$fila[Descripcion]</option>\n"); } print("</select></td></tr>"); ?> </form> ------------------------ Este es el codigo del segundo frame llamado marco2.php, el cual se abrira una vez elegido una opcion del primer combo. <? $pais=$_POST['pais']; echo $pais; include ("conexion.php"); /*$conn=odbc_connect('personas','patricia','pato'); if (!$conn) { exit("Connection Failed: " . $conn); } */ $sql="SELECT * FROM Personas"; $res=odbc_exec($conn,$sql); if ($pais!="0"){ $sqlprov="SELECT * FROM TB_Provincia WHERE idpais=$pais"; $resprov=odbc_exec($conn,$sqlprov); ?> <form action="marco4.php" method="post" target="secundario"> <tr><td><td> <select name="provincia" onChange="submit();"> <option selected>Seleccione Provincia</option> <? while($fila=odbc_fetch_array($resprov)) {?> <option value="<? echo $provincia=$fila['IdCodigo'] ?>"> <? echo $fila['Descripcion']; ?></option> <? }?> </select> <? } ?> </form> ----------------------- Este es el codigo del tercer frame llamado marco4.php, el cual se abrira si se elige la segunda opcion. <? $provincia=$_POST['provincia']; echo $provincia; include ("conexion.php"); $sql="SELECT * FROM Personas"; $res=odbc_exec($conn,$sql); $sqlprov="SELECT * FROM TB_Ciudad WHERE IdProvincia=$provincia"; $resprov=odbc_exec($conn,$sqlprov); ?> <form action="marco5.php" method="post" target="terciario"> <tr><td><td> <select name="ciudad" onChange="submit();"> <option selected>Seleccione Ciudad</option> <? while($fila=odbc_fetch_array($resprov)) {?> <option value="<? echo $ciudad=$fila['IdCodigo'] ?>"> <? echo $fila['Descripcion']; ?></option> <? }?> </select> </form> ----------------------- Este es el codigo de la cuarto frame llamado frame5.php, el cual se abrira si se elige la tercera opcion. <? $ciudad=$_POST['ciudad']; echo $ciudad; include ("conexion.php"); $sql="SELECT * FROM Personas"; $res=odbc_exec($conn,$sql); $sqlprov="SELECT * FROM TB_Barrio WHERE IdCiudad=$ciudad"; $resprov=odbc_exec($conn,$sqlprov); ?> <form action="" method="post" target=""> <tr><td><td> <select name="barrio" onChange="submit();"> <option selected>Seleccione Barrio</option> <? while($fila=odbc_fetch_array($resprov)) {?> <option value="<? echo $barrio=$fila['IdCodigo'] ?>"> <? echo $fila['Descripcion']; ?></option> <? }?> </select> </form> -------------- El archivo marcos3.php que se hace referencia en el archivo index, es un archivo php en blanco el cual se carga al comienzo para que aparesca en blanco los 3 ultimos frames, los cuales van cambiando cuando se van eligiendo las opciones en el combo empezando desde el primero. Espero que te sirva. Saludos. |