Tema: Ajax y JSP
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/03/2010, 08:25
shaina
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Mensaje Respuesta: Ajax y JSP

Hola!
gracias otra vez. Bien...
¿Tiene algo que ver que este probando el ejemplo sobre Mozilla Firefox instalado en Ubuntu? O que la bd sea Firebird?

Otra opción es adecuar este código a Ajax, es el MVC del que había comentado al inicio:


JSP:

Código PHP:
<%-- 
--%>

<%@
page contentType="text/html" pageEncoding="UTF-8"%>
<%@
page import="Operaciones.*,Controlador.*,beans.*,java.util.*"%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd"
>

<
html>

    <
head>

        <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <
title>Combos dependientes con bd</title>

        <
script type="text/javascript">
            function 
control()
            {
            
document.forms[0].action='Controlador?operacion=depende';
            
document.forms[0].submit();
            }
        
</script>

    </head>
    <body>
        <h1>PruebaCombos</h1>
        <form name="formCombos" method="POST" action="javascript">
            <table>
                <tr>
                    <td>
                        Nombre de pais
                    </td>

                    <td>
                        <select name="Id_Pais" onchange="control()">
                           
                            <%
                            Operaciones op=new Operaciones();
                            ArrayList<Pais> p=op.getPaises();
                            for(int i=0;i<p.size();i++)
                            {
                            %>
                            
                            <option value="<%=p.get(i).getCod_Pais()%>"><%=p.get(i).getNom_Pais()%></option>
                            <%
                            }
                            %>
                        </select>
                    </td>

                    <td>
                        <select name="Id_Departamento" onchange="control2()">
                            
                            <%
                            ArrayList<Departamento> dp=op.getDptos(request.getParameter("Id_Pais"));
                            for(int j=0;j<dp.size();j++)
                            {
                            %>
            
                            <option value="<%=dp.get(j).getCod_Departamento()%>"><%=dp.get(j).getNom_departamento()%></option>
                            <%
                            }
                            %>
                        </select>
                    </td>
                </tr>

                <tr>
                    <td>
                        <input type="button" name="Buscar" value="Buscar" id="Buscar"    onclick="control()"/>
                    </td>
                </tr>

            </table>
        </form>
    </body>
</html> 


El controlador(Servlet):

Código PHP:
 //Combo dependiente para sacar los departamentos
  
public class Controlador extends HttpServlet   {
   
    
/** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */

    
protected void processRequest(HttpServletRequest requestHttpServletResponse response)
    
throws ServletExceptionIOException {
        
response.setContentType("text/html;charset=UTF-8");
        
System.out.println(true);
        
String op request.getParameter("operacion");
        
System.out.println(op);
     
ServletContext ctx this.getServletContext();
     
System.out.println(ctx);

     
Operaciones data = new Operaciones();
     
RequestDispatcher rd;
     
RequestDispatcher rd2;
     
System.out.println(request.getLocale());

   if(
op.equals("depende"))
     {
         
String cod_paisrequest.getParameter("Cod_Pais");

         
request.setAttribute("Departamento",data.getDptos(cod_pais));
         
rd=request.getRequestDispatcher("/PruebaCombos.jsp");
         
rd.forward(requestresponse);
     }

}

//Metodos del Servlet
@Override
    
protected void doGet(HttpServletRequest requestHttpServletResponse response)
    
throws ServletExceptionIOException {
        
processRequest(requestresponse);
    } 
    
/** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    
@Override
    
protected void doPost(HttpServletRequest requestHttpServletResponse response)
    
throws ServletExceptionIOException {
        
processRequest(requestresponse);
    }

    
/** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    
@Override
    
public String getServletInfo() {
        return 
"Short description";
    } 

Y la clase Operaciones.java

Código PHP:

//Devolver lista de paises
     
public ArrayList<PaisgetPaises()
     {
         
ArrayList<Paisp=new ArrayList<Pais>();

         try{
             
Connection cn=this.getConection();
             
String query="Select * from Pais";
             
Statement st=cn.createStatement();
             
ResultSet rs=st.executeQuery(query);

             while(
rs.next())
             {
                 
Pais pa=new Pais();
                 
pa.setCod_Pais(rs.getInt("Id_Pais"));
                 
pa.setNom_Pais(rs.getString("Nom_Pais"));
                 
p.add(pa);
             }
         }catch(
SQLException e){
             
e.printStackTrace();
         }
         return 
p;
     }

     
//Devolver lista de departamentos de acuerdo al pais al que corresponde.
    
public ArrayList<DepartamentogetDptos(String cod_pais)
    {
        
ArrayList<Departamentodep=new ArrayList<Departamento>();
        try
        {
            
Connection cn=this.getConection();
            
String query="Select * from Departamento where Id_Pais='"+cod_pais+"'";
            
Statement st=cn.createStatement();
            
ResultSet rs=st.executeQuery(query);

            while(
rs.next())
            {
                
Departamento d=new Departamento();
                
d.setCod_Departamento(rs.getInt("Id_Departamento"));
                
d.setNom_departamento(rs.getString("Nom_Departamento"));
                
d.setCod_Pais(rs.getInt("Id_Pais"));
                
dep.add(d);
            }
        }catch(
SQLException e){
            
e.printStackTrace();
        }
        return 
dep;
    } 

Esa es la unica otra opción que se me ocurre de verdad aprecio mucho su ayuda