Duda sobre botones

Publicado en 'Programación' por Raise, 25 May 2015.





  1. Raise

    Raise Miembro nuevo

    Registro:
    13 May 2014
    Mensajes:
    21
    Likes:
    1




    Buenos días.

    Tengo una página y en específico un botón que cuando le hago click, hace lo que le indico pero al final manda a hacer refresh a la página, cosa que no está en su programación y que no me favorece ya que me resetea lo que se escribe en los campos y quiero conservarlos.

    ¿Hay alguna forma de evitar eso?

    No estoy colocando código debido a que no creo que sea la fuente del problema.

    Saludos.
     


  2. gnoto

    gnoto Miembro de bronce

    Registro:
    4 Feb 2013
    Mensajes:
    1,632
    Likes:
    473
    Lo mas lógico seria que revises si hay alguna "func=refr" o "func=reload". Es dificil ayudarte si no tienes el codigo colgado... Otra cosa que podrias hacer es buscar una pagina parecida y fijarte si tiene el mismo problema.
     
  3. Raise

    Raise Miembro nuevo

    Registro:
    13 May 2014
    Mensajes:
    21
    Likes:
    1
    Bueno, aquí está el código.

    Código:
    <input type="submit" value="Aceptar Datos" onclick="grabar()" />

    Código:
    function grabar(){
        var documento = null;
        documento = new XMLHttpRequest();
       
        if (documento){  
            var ss = document.getElementById("tipodocu");
            var tlf = document.getElementById("tlf").value;
            var cliente = document.getElementById("cliente").value;
            var dir = document.getElementById("ref").value;
            var ref = document.getElementById("dirref").value;
            var cuad = document.getElementById("cuad").value;
            var dist = document.getElementById("dist").value;
            var urb = document.getElementById("urb").value;
            var hoy = document.getElementById("hoy").value;
    
            if(ss.options[ss.selectedIndex].text=="BOLETA"){
                var url = "doGrabar?tlf="+tlf+"&cli="+cliente+"&dir="+dir+"&ref="+ref+"&cuad="+cuad+"&dist="+dist+"&urb="+urb+"&fec="+hoy;
                documento.open("POST",url,false);
                documento.send(null);
                alert(documento.responseText);
            }else{
                var ruc = document.getElementById("txtruc").value;
                var nomruc = document.getElementById("razsoc").value;
                var dirruc = document.getElementById("direcruc").value;           
               
                var url2 = "doGrabar2?tlf="+tlf+"&cli="+cliente+"&dir="+dir+"&ref="+ref+"&cuad="+cuad+"&dist="+dist+"&urb="+urb+"&ruc="+ruc+"&nomruc="+nomruc+"&dirruc="+dirruc+"&fec="+hoy;
                documento.open("POST",url2,false);
                documento.send(null);
                alert(documento.responseText);
            }
        }
    }

    Código:
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //processRequest(request, response);
            PrintWriter out = response.getWriter();       
            ArrayList lista = new ArrayList();
           
            if(request.getParameter("tlf").equals("") ||
                    request.getParameter("cli").equals("") ||
                    request.getParameter("dir").equals("") ||
                    request.getParameter("ref").equals("") ||
                    request.getParameter("cuad").equals("") ||
                    request.getParameter("dist").equals("")){
                out.print("Faltan datos a ingresar");
            }
            else{
                Cliente cl = new Cliente();
                Acciones acc = new Acciones();
               
                cl.setTelf(request.getParameter("tlf"));
                cl.setContacto(request.getParameter("cli"));
                cl.setDirec(request.getParameter("dir"));
                cl.setRef(request.getParameter("ref"));
                cl.setCuad(request.getParameter("cuad"));
                cl.setDist(request.getParameter("dist"));
                cl.setUrb(request.getParameter("urb"));
                cl.setFecreg(request.getParameter("fec"));
               
                if(acc.grabarCliente(cl)){
                    out.print("Cliente registrado");
                }
            }
        }

    Código:
    public boolean grabarCliente(Cliente objCl){
            PreparedStatement stm = null;
            PreparedStatement stm2 = null;
            ResultSet rs = null;
           
            try {
                stm = objC.conectar().prepareCall("SELECT * FROM telefcliedeliv WHERE IdTelefono=? AND Contacto=?");
                stm.setString(1, objCl.getTelf());
                stm.setString(2, objCl.getContacto());
                rs = stm.executeQuery();
               
                if(rs.next()){
                    stm2 = objC.conectar().prepareCall("UPDATE telefcliedeliv SET "
                                                        +"Numero=?, Referencia=?, cuadrante=?, DISTRITO=?, URBANIZ=?"
                                                        +"WHERE IdTelefono=? AND Contacto=?");
                    stm2.setString(1, objCl.getDirec());
                    stm2.setString(2, objCl.getRef());
                    stm2.setString(3, objCl.getCuad());
                    stm2.setString(4, objCl.getDist());
                    stm2.setString(5, objCl.getUrb());               
                    stm2.setString(6, objCl.getTelf());
                    stm2.setString(7, objCl.getContacto());
                    stm2.executeUpdate();
                    return true;
                }else{
                    stm2 = objC.conectar().prepareCall("INSERT INTO telefcliedeliv "
                                                        +" (IdTelefono,Contacto,Numero,Referencia,cuadrante,DISTRITO,URBANIZ,fecnac)"
                                                        +" VALUES (?,?,?,?,?,?,?,?)");
                    stm2.setString(1, objCl.getTelf());
                    stm2.setString(2, objCl.getContacto());
                    stm2.setString(3, objCl.getDirec());
                    stm2.setString(4, objCl.getRef());
                    stm2.setString(5, objCl.getCuad());
                    stm2.setString(6, objCl.getDist());
                    stm2.setString(7, objCl.getUrb());
                    stm2.setString(8, objCl.getFecreg());
                    stm2.executeUpdate();
                    return true;
                }
            } catch (Exception e) {
                System.err.println("Error de procedimiento: " +e.getMessage());
            }
            return false;
        }
     
  4. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    792
    Likes:
    252
    Input type submit envia el form al server por lo que vez ese refresh, cambia submit por button para que no envie y solo ejecute el script.
     
  5. Raise

    Raise Miembro nuevo

    Registro:
    13 May 2014
    Mensajes:
    21
    Likes:
    1
    Era eso, gracias.