Php - formularios

¿Hola cómo estas?... Mi pregunta es la siguiente: como puedo hacer para que en una formulario en html y con pequeños códigos de php, al seleccionar una opción de una lista desplegable (combo de VB) me cargue algo en otra lista desplegable, por ejemplo como hay en algunas páginas que si se selecciona el departamento (privincia, estado, etc) me cargue las ciudades pertenecientes a la opción seleccionada y sin que se borren los datos que ya tenga selleccionados.
De antemano gracias por la respuesta
Desde Colombia
Hozkar

1 respuesta

Respuesta
1
Esto se hace con JavaScript, no con PHP, a no ser que cargues los valores del combo de una base de datos.
Aquí tienes un ejemplo:
<FORM name="form1" method="POST">
<!--Combo principal-->
<select name="marca" onChange="redirect(this.options.selectedIndex)" style='width:160'>
<option selected value=0>MARCA</option>
<option value=1>Ford</option>
<option value=2>Seat</option>
<option value=3>Volkswagen</option>
</select>
<!--Combo dinámico-->
<select name="modelo" style='width:160'>
<option selected value=0>MODELO</option>
</select>
</FORM>
<script>
<!--
var groups=document.form1.marca.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
<!--Crea tantos arrays como valores hay en el combo principal-->
group=new Array()
<!--Opciones cuando no se ha hecho ninguna selección en el combo principal-->
group[0][0]=new Option("MODELO","0");
<!--Opciones para la primera opción del combo principal-->
group[1][0]=new Option("Mondeo","10");
group[1][1]=new Option("Fiesta","11");
group[1][2]=new Option("Focus","12");
<!--Opciones para la segunda opción del combo principal-->
group[2][0]=new Option("Córdoba","20");
group[2][1]=new Option("León","21");
group[2][2]=new Option("Ibiza","22");
group[2][3]=new Option("Toledo","23");
<!--Opciones para la tercera opción del combo principal-->
group[3][0]=new Option("Golf","30");
group[3][1]=new Option("Polo","31");
var temp=document.form1.modelo
<!--Función de carga de las opciones dinámicas -->
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options=new Option(group[x].text,group[x].value)
}
temp.options[0].selected=true
}
//-->
</script>
Si usas una base de datos, en el momento de crear los arrays tendrás que combinar el javascript con php:
//Haz un SELECT de todas las subopciones posibles dentro de una opción principal (una a una)
<?
//SELECT grupo 1
i=0;
while($row=mysql_fetch_array) {
echo "group[1]=new Option(\"$row['marca']\",\"i+1\");";
i++;
}
//SELECT grupo 2
i=0;
while($row=mysql_fetch_array) {
echo "group[2]=new Option(\"$row['marca']\",\"i+1\");";
i++;
}
...
...
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas