mejor usa combos dependientes, es mucho mas facil, aunq si se puede hacer eso que quieres, en este momento no recuerdo como hacer eso de que te abra una pagina como lo quieres pero te dejo el codigo de los combos dependientes si te sirve y si lo quieres hacer asi
cabe mensionar que el codigo esta en un jsp y ajax
primero debes hacer una tabla donde vincules cada provincia con sus poblaciones, me imagino que tienes dos tablas, digamos provincia y poblaciones
si usas MySQL, q es lo mas probable el codigo te quedaria asi
en tu pagina debes tener los dos combos el de provincias y el de poblacioines
Código HTML:
Ver original/*PETICIONES AJAX PARA COMBOS ANIDADOS, ESTE LO DEBES DE PONER, NO LO PUEDES QUITAR*/
//esto lo dejas tal y como esta
var peticion = false;
var testPasado = false;
try {
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}
if (!peticion)
alert("ERROR AL INICIALIZAR!");
function cargarCombo (url, comboAnterior, element_id) {
//Obtenemos el contenido del div
//donde se cargaran los resultados
var element = document.getElementById(element_id);
//Obtenemos el valor seleccionado del combo anterior
var valordepende = document.getElementById(comboAnterior)
var x = valordepende.value
//construimos la url definitiva
//pasando como parametro el valor seleccionado
var fragment_url = url+"?prov="+x;
//abrimos la url
peticion.open("GET", fragment_url);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
//escribimos la respuesta
element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}
<form name="formulario" action="principal.jsp" method="POST" id="formulario"> <select name="comboprincipal" id="comboprincipal" onChange="javascript:cargarCombo(' combodependiente.jsp', 'comboprincipal', 'div_combodependiente')" > < %//aqui haces tu consulta y creas las opciones dinamicamente de acuerdo al total de registros que contiene tu consulta, algo como rs = st.executeQuery("select * from provincias");
//luego algo como rs.first();
while(rs.next()){%>
<option value="<%=rs.getString("provincia")%>">
<%=rs.getString("provincia")%></option> <%}%>
<div id="div_combodependiente"> <select name="combodependiente" id="combodependiente"></select>
y tienes que hacer otra pagina donde haces la consulta con la poblacion q seleccionaste algo como esto
Código HTML:
Ver original<%
out.println("<label for='combodependiente'> comboDependiente ");
out.println("
<select name='combodependiente' id='combodependiente' >");
//recogemos el parámetro
if(request.getParameter("prov")!=null){
//hacemos la consulta en la bbdd
rs = st.executeQuery("select * from poblaciones where provincia='"+request.getParameter("prov")+"'");
rs.first();
while(rs.next()){
out.println("
<option value='"+rs.getString("poblacion")+"'>"+rs.getString("poblacion")+"
</option>");
}
}
%>
y listo ya tienes tus combos dependientes, claro que le falta la conexion a la base de datos y otras cosas esto es solo para que te des una idea, pero en esencia es todo lo que necesitas
es importantes que los tags como los <div>, etc, los tengas ya q sin ellos no va a funcionar
espero te sirva esto