Select dependientes

Tengo en mi formulario dos select el primero tiene la lista de países y el otro debe contener los estados de el país que seleccione en el primer select solo que no lo puedo hacer o sea actualizar al segundo select de acuerdo con la opción del primero.
Respuesta
1
Andaba algo ocupado pero ya..
Lo que tienes que hacer es lo siguiente (espero que sea lo que necesitas)
//Aqui va el query SE VALOR, DESCRIPCION.. from ....
//Para el primer "select"
echo '<form method="post" action="PHP_SELF">';
echo '<select name="sNombTabla" onChange="self.location.href=this.options[this.selectedIndex].value"> target=_self';
//"Barremos el primer recordset while (!$rsTablasDef->EOF) {
if (trim($rsTablasDef->fields["VALOR"])==trim($sNombTabla)) {
echo '<option selected value="' . PHP_SELF . '&sNombTabla=' . $rsTablasDef->fields["VALOR"] . '" >' . $rsTablasDef->fields["DESCRIPCION"] . "</option>";
} else {
echo '<option value="' . PHP_self . '&sNombTabla=' . $rsTablasDef->fields["VALOR"] . '">' . $rsTablasDef->fields["DESCRIPCION"] . "</option>";
}
//vamos al sig registro $rsTablasDef->MoveNext();
//}
Echo '</select></form>'
//Aquí va el segundo query ... el valor seleccionado lo tenemos en este caso en $sNombTabla
// Y EL SELET NORMAL
Checha las comillas y los apóstrofos sobre todo donde esta PHP_SELF, este es un fragmento de algo que si funciona tuve que cambiar algo ya que yo tenia otra cosa en lugar de PHP_SELF
Si tienes problemas, estamos en contacto.
te agradezco la ayuda pero algo falta en este fragmento
echo '<select name="sNombTabla"
onChange="self.location.href=this.options[this.selectedIndex].value"> target=_self';
Por que al cambiar lo que hace es que me manda una página en blanco y no se por que te soy sincero, ya intente poner un php_self en el onchange pero no resulto, pero si tienes otra opción te agradecería me la mandaras
Aquí esta un ejemplo que lo corrí y funciona ¿Qué hace?
Crea un select con algunos países (tu los obtendrás de tu Base de Datos)
Al seleccionar alguno de los países inmediatamente se llama a si misma la página y pasa como parámetro una variable (sPaises) que tiene el valor del país elegido. Copia el siguiente fragmento de código y guardalo con extensión php y "correlo".
Espero que sea lo que buscas¡
<?php
echo '<form method="post" action="PHP_SELF">';
$pais[0]="Mexico";
$pais[1]="España";
$pais[2]="Italia";
$pais[3]="Canada";
echo '<select name="sPaises" onChange="self.location.href=this.options[this.selectedIndex].value" target=_self>';
for ($nContador=0; $nContador<sizeof($pais);$nContador++) {
if (trim($pais[$nContador])==trim($sPaises)) {
echo '<option selected value="' . $PHP_SELF . "?sPaises=$pais[$nContador] " . '">' . $pais[$nContador] . "</option>";
} else {
echo '<option value="' . $PHP_SELF . "?sPaises=$pais[$nContador] " . '">' . $pais[$nContador] . "</option>";
}
}
echo '</select></form></center>';
if (@$sPaises<>"") {
echo "<br>Los estado de " . $sPaises . " son:";
} else {
echo "Seleccione pais para desplegar estados";
}
//Aquí va el segundo select pero ya sabes cual seleccionaron en el primero
?>
Muchas gracias por que tu respuesta me ayudó muchísimo, con lo único que puedo pagarte es pidiendo a Dios que te vaya muy bien en todo lo que hagas por que no tengo recursos.
De todos modos gracias y espero que todo el la vida te salga bien. Espero no molestarte muy seguido. Atentamente. chicomendez.

1 respuesta más de otro experto

Respuesta
Selects dependientes:
Debes usar JavaScrpt para eso. Fíjate en como está hecho el ejemplo País / Provincia de la página http://www.internenes.com/informacion/pedido.phtml
Es un código muy claro.
Te agradezco la respuesta solo que yo programo en php y el contenido de los select se llenan con una consulta sql y claro esta los datos no son estáticos como en el ejemplo que me diste así que espero que me puedas ayudar
La página estática puede ser construida como página dinámica.
Mediante un bucle PHP puedes extraer de la base de datos los campos e ir colocándolos secuencialmente en los tags <option>...</option>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas