Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [JSP] Passaggio valori da tabella a form

    nella index ho questa tabella:
    codice:
    <table>
            <c:forEach items="${requestScope.list}" var="lists">
                <tr>
                    <td>
                        <c:out value="${lists.id}"/>
                    </td>
                    <td>
                        <c:out value="${lists.entrate}"/>
                    </td>
                    <td>
                        <c:out value="${lists.uscite}"/>
                    </td>
                    <td>
                        <c:out value="${lists.causale}"/>
                    </td>
                    <td>
                        <c:out value="${lists.data}"/>
                    </td>
                    <td>
                        Elimina
                    </td>
                    <td>
                        Modifica
                    </td>
                </tr>
            </c:forEach>
        </table>
    al click sul link modifica si dovrebbe aprire la pagina di modifica:
    codice:
            <form action="DoUpdate" method="post">
                <input type="text" name="id" value="" readonly="readonly" />
                <input type="text" name="txtEntrate" value=""/>
    
                <input type="text" name="txtUscite" value=""/>
    
                <input type="text" name="txtCausale" value=""/>
    
                <input type="submit" name="Submit" value="Submit" />
            </form>
    il form dovrebbe apparire con i valori corrispondenti alla voce che si vuole modificare.
    come posso fare questo passaggio di valori??

  2. #2
    ho provato a fare così.
    il link l'ho modificato così:
    codice:
    Modifica
    poi la servlet l'ho fatta così:
    codice:
    public class RiempiForm extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request, response);
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            ArrayList list = new ArrayList();
            int id = Integer.parseInt(request.getParameter("txtId".trim()));
            String sql_select = "SELECT FROM movimenti WHERE id" + id + "LIMIT 1";
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            try {
                conn = Connessione.getConnection();
                stmt = conn.createStatement();
                rs = stmt.executeQuery(sql_select);
                while (rs.next()) {
                    Movimenti moves = new Movimenti();
                    moves.setId(rs.getInt("id"));
                    moves.setEntrate(rs.getInt("entrate"));
                    moves.setUscite(rs.getInt("uscite"));
                    moves.setCausale(rs.getString("causale"));
                    moves.setData(rs.getString("data"));
                    list.add(moves);
                }
                request.setAttribute("list", list);
                RequestDispatcher disp = request.getRequestDispatcher("/modifica.jsp");
                disp.forward(request, response);
            } catch (ClassNotFoundException ex) {
                ex.getMessage();
            } catch (SQLException ex) {
                ex.getMessage();
            } finally {
                try {
                    rs.close();
                    stmt.close();
                } catch (SQLException ex) {
                    ex.getMessage();
                }
            }
        }
    }
    in pratica ho pensato di passare tramite get i valori dell'id selezionato, e poi rediregere questi valori al form di modifica.jsp.
    solo che nel form come faccio a impostare il valore degli input text??

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    181
    Usa struts...sarà poi l'action form ad occuparsi di tutto. Se invece non vuoi usarlo, per valorizzare gli input text, dovrai utilizzare il getAttribute. In poche parole nella servlet metti in request il valore che ti serve, e poi nella JSP lo recuperi.

  4. #4
    Come ti hanno suggerito inizia a vedere Struts.
    Per la domanda se chiami la jsp passandogli i parametri:
    codice:
    Modifica
    ti basta nella jsp sull'onload del body chiamare una funzione che valorizza i campi prendendoli dalla request:
    codice:
    <script>
    function settaForm(){
        document.NomTuoForm.id.value=<%=request.getParameter("id")%>;
        document.NomTuoForm.txtEntrate.value=<%=request.getParameter("entrate")%>;
    ...
    ..
    }
    </script>
    <body onload=settaForm()>
    ....
    ...
    </body>

  5. #5
    si infatti mi sto leggendo un pò di roba su struts.
    appena posso inizio a studiarmelo.

    cmq, con la tua soluzione avevo già provato ma con scarsi rislutati.
    il campo causale nn si riempie mai ed inoltre da un cerco record in poi nn riempie neanche gli altri campi.
    codice:
    Modifica
    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!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>JSP Page</title>
            <script type="text/javascript">
                function settaForm() {
                    document.formUpdate.txtId.value=<%=request.getParameter("id")%>;
                    document.formUpdate.txtEntrate.value=<%=request.getParameter("entrate")%>;
                    document.formUpdate.txtUscite.value=<%=request.getParameter("uscite")%>;
                    document.formUpdate.txtCausale.value=<%=request.getParameter("causale")%>;
                }
            </script>
        </head>
        <body onload="settaForm();">
            <form name="formUpdate" action="DoUpdate" method="post">
                <input type="text" name="txtId" readonly="readonly" />
    
                <input type="text" name="txtEntrate" value="" />
    
                <input type="text" name="txtUscite" value="" />
    
                <input type="text" name="txtCausale" value=""/>
    
                <input type="submit" name="Submit" value="Submit" />
            </form>
        </body>
    </html>

  6. #6
    Strano controlla bene i parametri che passi se non sono vuoti quando fai la query e costruisci la url etc.

  7. #7
    bhe quando clicco sul link l'url diventa:
    codice:
    /modifica.jsp?id=30&entrate=100&uscite=0&causale=jsp%201
    quindi i campi sono valorizzati.
    ho ricontrollato anche le varie voci ma nn trovo errori di battitura.

  8. #8
    risolto così:
    codice:
            <form name="formUpdate" action="DoUpdate" method="post">
                <input type="text" name="txtId" readonly="readonly" value="<%=request.getParameter("id")%>" />
    
                <input type="text" name="txtEntrate" value="<%=request.getParameter("entrate")%>" />
    
                <input type="text" name="txtUscite" value="<%=request.getParameter("uscite")%>" />
    
                <input type="text" name="txtCausale" value="<%=request.getParameter("causale")%>"/>
    
                <input type="submit" name="Submit" value="Submit" />
            </form>
    grazie a entrambi!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.