Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2004, 09:19
jazmina
 
Fecha de Ingreso: mayo-2004
Ubicación: Corrientes-Argentina
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
De acuerdo 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.