Soy muy nueva en Ajax pero ya he trabajado con JSP.
Estoy intentando hacer combos dependientes, o sea que cuando escoja un pais en un combobox(la lista de paises la traigo de una bd Firebird) me salga en el otro combobox los departamentos asociados a ese pais.
Ya sé que hay muchos post en este foro y en la web que hablan de eso pero la mayoría son PHP y no he podido adaptarlos al JSP.
Al principio lo tenía con un controlador y un JSP pero no funcionó, así que ahora lo tengo con dos JSP's.
Este es el primero(PruebaCombos.jsp)
Código PHP:
<%@page import="Operaciones.*,Controlador.*,IglesiaCristianos.*,java.util.*"%>
<html>
<script language="JavaScript">
/*
onclick="javascript:alert('Hola');"
*/
var req;
function Mostrar(){
alert('esto es una prueba ¬¬');
}
function obtenerCiudadesDePais(){
if (formulario.pais.options[ formulario.pais.selectedIndex ].value == "-------------"){
alert('Seleccione una opci?n v?lida para el pais');
return ;
}
if( window.XMLHttpRequest )
req = new XMLHttpRequest(); // No Internet Explorer
else
req = new ActiveXObject("Microsoft.XMLHTTP");
url = "info.jsp?pais="+encodeURIComponent(formulario.pais.options[formulario.pais.selectedIndex].value);
req.onreadystatechange = procesadorRespuesta;
req.open("POST", url , true);
req.send(url);
function procesadorRespuesta(){
if (req.readyState == 4){
if (req.status==200){
document.all.ciudad.innerHTML = req.responseText;
}
}
}
</script>
<head><title>Combos</title></head>
<body>
<form name="formulario">
Escoja su país de origen:<br>
<%
OperacionIglesia op=new OperacionIglesia();
ArrayList<Pais> listap=op.getPaises();
%>
<select name="pais" id="pais" onChange="obtenerCiudadesDePais();">
<option>-------------</option>
<%
for(int i=0;i<listap.size();i++)
{
%>
<option value=<%=listap.get(i).getCod_Pais()%>><%=listap.get(i).getNom_Pais()%></option>
<%
}
%>
</select><br>
Escoja su ciudad<br>
<select name="ciudad">
</select>
</form>
</body>
</html>
Y este es el que debería devolver la respuesta al PruebaCombos.jsp, que se llama info.jsp
Código PHP:
<%@page import="Operaciones.*,Controlador.*,IglesiaCristianos.*,java.util.*"%>
<%
String pais = request.getParameter("pais");
OperacionIglesia op=new OperacionIglesia();
ArrayList<Departamento> listac=op.getDptos(pais);
String info = "";
for(int i=0;i<listac.size();i++)
{
info = "<option>"+listac.get(i).getNom_departamento()+"</option>";
}
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write(info);
%>
Bueno ya he probado varias cosas y nada, tal vez estoy entendiendo mal la lógica de ajax...
Si alguno puede ayudarme lo aprecio mucho y gracias de antemano