combos relacionados jsp y XMLHttpReques
var peticion = null;
function inicializa_xhr() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function muestraProvincias() {
if (peticion.readyState == 4) {
if (peticion.status == 200) {
var lista = document.getElementById("provincia");
var documento_xml = peticion.responseXML;
var provincias = documento_xml.getElementsByTagName("provincias")[0];
var lasProvincias = provincias.getElementsByTagName("provincia");
lista.options[0] = new Option("- selecciona -");
// M�todo 1: Crear elementos Option() y a�adirlos a la lista
for(i=0; i<lasProvincias.length; i++) {
var codigo = lasProvincias[i].getElementsByTagName("codigo")[0].firstChild.nodeValue;
var nombre = lasProvincias[i].getElementsByTagName("nombre")[0].firstChild.nodeValue;
lista.options[i+1] = new Option(nombre, codigo);
}
}
}
}
function cargaMunicipios() {
var lista = document.getElementById("provincia");
var provincia = lista.options[lista.selectedIndex].value;
if(!isNaN(provincia)) {
peticion = inicializa_xhr();
if (peticion) {
peticion.onreadystatechange = muestraMunicipios;
peticion.open("POST", "http://localhost:8084/AJAX_7/cargaMunicipiosXML.jsp?nocache=" + Math.random(), true);
peticion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
peticion.send("provincia=" + provincia);
}
}
}
function muestraMunicipios() {
if (peticion.readyState == 4) {
if (peticion.status == 200) {
var lista = document.getElementById("municipio");
var documento_xml = peticion.responseXML;
var municipios = documento_xml.getElementsByTagName("municipios")[0];
var losMunicipios = municipios.getElementsByTagName("municipio");
// Borrar elementos anteriores
lista.options.length = 0;
// Se utiliza el m�todo de crear elementos Option() y a�adirlos a la lista
for(i=0; i<losMunicipios.length; i++) {
var codigo = losMunicipios[i].getElementsByTagName("codigo")[0].firstChild.nodeValue;
var nombre = losMunicipios[i].getElementsByTagName("nombre")[0].firstChild.nodeValue;
lista.options[i] = new Option(nombre, codigo);
}
}
}
}
window.onload = function() {
peticion = inicializa_xhr();
if(peticion) {
peticion.onreadystatechange = muestraProvincias;
peticion.open("GET", "http://localhost:8084/ajax_7/cargaProvinciasXML.php?nocache="+Math.random(), true);
peticion.send(null);
}
document.getElementById("provincia").onchange = cargaMunicipios;
}
</script>
......
<form>
<label for="provincia">Provincia</label>
<select id="provincia">
<option>Cargando...</option>
</select>
<br/><br/>
<label for="municipio">Municipio</label>
<select id="municipio">
<option>- selecciona una provincia -</option>
</select>
</form>
..................................................................
No tengo idea como hacer esto ..¿quien me orienta?
int municipios [][]={};
municipios[1][14] = "Alegría-Dulantzi";
municipios[1][29] = "Amurrio";
...
municipios[2][493] = "Añana";
municipios[32][35] = "Aramaio";
....
¿como hago para cargar las provincias en primer lugar?
¿y para cuando cambie de provincia que se recargen los municipios de la provincia que marquè?
%>
- Payan's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
ya di como hacerlo xD
<%
String provincias[]=new String[2];
provincias[0] = "Álava/Araba";
provincias[1] = "Albacete";
String cadena="<provincias>";
for(int x=0;x<provincias.length;x++){
String provincia="<provincia>\n<codigo>"+x+"</codigo>\n<nombre>"+provincias[x]+"</nombre>\n</provincia>";
cadena=cadena+provincia;
}
cadena=cadena+"</provincias>";
out.print(cadena);
%>
Document : cargaMunicipiosXML
Created on : 11-feb-2013, 11:09:31
Author : Usuario
--%>
<%@page contentType="text/xml" pageEncoding="UTF-8"%>
<%
String pro=request.getParameter("provincia");
String provincias[][]=new String[2][2];
provincias[0][0] = "los palacios";
provincias[0][1] = "lebrija";
provincias[1][0] = "loss";
provincias[1][1] = "lebr";
String cadena="<municipios>";
int entero=Integer.parseInt(pro);
for(int x=0;x<provincias.length;x++){
String provincia="<municipio>\n<codigo>"+x+"</codigo>\n<nombre>"+provincias[entero][x]+"</nombre>\n</municipio>";
cadena=cadena+provincia;
}
cadena=cadena+"</municipios>";
out.print(cadena);
%>
ammmm
ya existen jquery. no te seria mas facil usarlo con jquery?, ahora parece que trabajas con tecnologias de hace 10 años
no ha sido mi opcion hacerlo
no ha sido mi opcion hacerlo asi,es el profesor..pero llevas razon es mejorcon jquery
info
Independientemente que ya lo resolviste te paso unas ligas
No es la unica forma de trabajar web 2.0 en java, en estas ligas se trabaja con jquery + json
dwr y/o spring ajax
http://forum.springsource.org/archive/index.php/t-92660.html
http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/
http://stackoverflow.com/questions/1519165/jquery-autocomplete-with-dwr
http://www.raistudies.com/spring/spring-mvc/spring-mvc-json-jquery/
http://forum.springsource.org/archive/index.php/t-92660.html
Saludos.