La idea es poder hacer que el código javascript haga que se ejecute el código php cuando el usuario elija una opción en el primer combo, pero cuando intento hacerlo me encuentro que lineas como "mysql_query($consulta);" no me funcionan.. he intentado meterlas dentro de un "document.write('...')" pero nada. Mucha gente me aconseja que recargue la página, pero por poco que pueda quiero evitarlo.
Por favor, espero que podais ayudarme. Gracias.
Un saludo.
--------------------------------------------------------------------------
Cita:
Iniciado por Kaopectate
P: ¿Como puedo poner en mi página dos combos que dependiendo de la opción seleccionada en uno de ellos me cambie el contenido del otro combo, teniendo en cuenta de que todas las opciones provienen de una base de datos?
R:
R:
Código PHP:
<html>
<head>
<script language="JavaScript">
/* Trae desde la base de datos los nombres de los paises */
/* y colócalos en este arreglo. */
var aPaises = new Array(
" ",
"Mexico",
"España",
"Venezuela"
);
var aEstados0 = new Array(
" "
);
/* Trae desde la base de datos los nombres de las ciudades */
/* de cada uno de los paises de la lista anterior y ponlos */
/* en arreglos individuales. */
var aEstados1 = new Array(
" ",
"Ciudad de México",
"Monterrey",
"Guadalajara"
);
var aEstados2 = new Array(
" ",
"Madrid",
"Barcelona",
"San Sebastián"
);
var aEstados3 = new Array(
" ",
"Caracas",
"Coro",
"Maracay",
"Valencia"
);
/* Arma un arreglo general de estados a partir de los arreglos */
/* anteriores. Es importante que cada arreglo comience por un */
/* valor en blanco y que el primer arreglo de ciudades, llamado */
/* aqui aEstados0, no contenga ningún elemento. */
var aEstados = new Array(
aEstados0,
aEstados1,
aEstados2,
aEstados3
);
function opcion(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}
function cambia(oMster, oCntrl){
var nSelected = oMster.selectedIndex;
while (oCntrl.length) oCntrl.remove(0);
for(var i = 0; i < aEstados[nSelected].length; i++)
opcion(oCntrl, i, aEstados[nSelected][i], String(i));
}
function llena(oCntrl){
while (oCntrl.length) oCntrl.remove(0);
for(var i = 0; i < aPaises.length; i++)
opcion(oCntrl, i, aPaises[i], String(i));
}
</script>
</head>
<body>
<form name="frm">
Pais
<select name="pais" onchange="cambia(this, document.frm.ciudad)">
<option value=" "> </option>
</select>
Ciudad
<select name="ciudad">
<option value=" "> </option>
</select>
</form>
<script language="JavaScript">
llena(document.frm.pais);
</script>
</body>
</html>