Tema: Ajax y JSP
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2010, 12:28
shaina
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años, 2 meses
Puntos: 0
Mensaje Ajax y JSP

Hola
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.optionsformulario.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&iacute;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<Departamentolistac=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