Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [jsp + java]modifica dati form

    Salve,
    devo fare una pagina che permette al bibliotecario di modificare i dati dei libri presenti nel db!
    il codice che ho sviluppato è questo:

    codice:
                         
                <table width="100%" border="0">
                    <tr bgcolor="#0000FF">
                        <td><font color="white">TITOLO</font></td>
                        <td><font color="white">AUTORE</font></td>
                        <td><font color="white">EDITORE</font></td>
                        <td><font color="white">ANNO PUBLICAZIONE</font></td>
                        <td><font color="white">MODIFICA</font></td>
                    </tr>
    
                    <% for (i = 0; i < c; i++) {%>
                    <tr bgcolor="blue">
                        <td><input type="Text" name="titolo" size="20" value="<%= lib[i].getTitolo()%>"></td>
                        <td><input type="Text" name="autore" size="20" value="<%= lib[i].getAutore()%>"></td>
                        <td><input type="Text" name="editore" size="20" value="<%= lib[i].getEditore()%>"></td>
                        <td><input type="Text" name="annopub" size="20" value="<%= lib[i].getAnno_publicazione()%>"></td>
                        <td>
    
                               <form action="Controller" method="POST">
                                <input type="hidden" name="op" value="libri_mod">
                                <input type="hidden" name="libro_modTit" value="<%=lib[i].getTitolo()%>">
                                <input type="hidden" name="libro_modAut" value="<%=lib[i].getAutore()%>">
                                <input type="hidden" name="libro_modEdi" value="<%=lib[i].getEditore()%>">
                                <input type="hidden" name="libro_modAnn" value="<%=lib[i].getAnno_publicazione()%>">
                                <input name="submit" type="submit" id="Submit" value="Modifica/Salva" />
                                </form>
                        </td>
                    </tr>
                    <% }%>
    
                </table>
    Il mio problema è che facendo così non passo i valori modifica dal bibliotecario ma i valori che erano gia nel db! come devo fare??

    codice:
    Titolo            Autore   Editore  Anno publicazione    Modifica
    I 3 moschettieri   Dumas    Rizzoli     1844            modifica/salva(bottone)
    La metamorfosi    Franz Kafka  Mondadori  1897    modifca/salva(bottone)
    Se si effettua una modifica ad es al titolo I 3 moschettieri con 3 moschettieri viene "passato" I 3 moschettieri

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    devi fare che salvi i dati NUOVI nel database (non c'è traccia di come tu stia processando i dati dal form).

    Tutti quegli hidden, ad occhio, servono a niente. Ti consiglio inoltre di consentire la modifica di un solo titolo alla volta (non che non si possa fare a modificare tutto quanto tu voglia in una sola passata, ma vuol dire imbarcarsi in una gestione di form un po' più avanzata - anche i form HTML possono avere elementi array), quindi di snellire. Ho lasciato il for per pigrizia, ma lo eliminerei, oppure mostrerei un link ad una JSP che prenda come parametro in query-string l'id del libro oggetto di modifica e che quindi mostri un form ad-hoc per la modifica del titolo scelto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da Andrea1979
    devi fare che salvi i dati NUOVI nel database (non c'è traccia di come tu stia processando i dati dal form).

    Tutti quegli hidden, ad occhio, servono a niente. Ti consiglio inoltre di consentire la modifica di un solo titolo alla volta (non che non si possa fare a modificare tutto quanto tu voglia in una sola passata, ma vuol dire imbarcarsi in una gestione di form un po' più avanzata - anche i form HTML possono avere elementi array), quindi di snellire. Ho lasciato il for per pigrizia, ma lo eliminerei, oppure mostrerei un link ad una JSP che prenda come parametro in query-string l'id del libro oggetto di modifica e che quindi mostri un form ad-hoc per la modifica del titolo scelto.
    Scusa ma non ho ben capito puoi farmi un esempio?

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Lib è un'array di oggetti Libro!
    Gli hidden salvano i dati che poi recupero nel Controller.java facendo request.getParameter("xxx");
    solo che mette i dati passati all'inizio e non quelli modificati

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora premesso che un campo hidden normalmente il visitatore non può modificarlo (almeno non agevolmente, ovvero devi passare via javascript) e che quindi non va bene inserire lì i dati se li vuoi modificare, qui non vediamo nemmeno la pagina in cui vai ad effettuare la modifica/salvataggio (o se fosse nella medesima pagina, visto che l'action del form non è specificata, non vediamo il codice che si occupa di tale recupero/salvataggio).

    L'altra mia obiezione riguarda il modo in cui stai gestendo il tutto: mostri un array di oggetti "Libro", ok, ma i campi li chiami tutti alla stessa maniera. OK anche questo, visto che JSP se non ricordo male riesce comunque a gestire campi con nomi ripetuti (cosa che invece PHP fa male e per cui c'è la sintassi standard: name="nome_campo_ripetuto[i]"): ti serve davvero complicarti la vita con un form unico in cui gestire tutte le modifiche a tutti i titoli in una sola volta piuttosto che avere una pagina che si occupa di mostrare i titoli in elenco ed una pagina predisposta alla modifica di un titolo alla volta?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da Andrea1979
    Allora premesso che un campo hidden normalmente il visitatore non può modificarlo (almeno non agevolmente, ovvero devi passare via javascript) e che quindi non va bene inserire lì i dati se li vuoi modificare, qui non vediamo nemmeno la pagina in cui vai ad effettuare la modifica/salvataggio (o se fosse nella medesima pagina, visto che l'action del form non è specificata, non vediamo il codice che si occupa di tale recupero/salvataggio).

    L'altra mia obiezione riguarda il modo in cui stai gestendo il tutto: mostri un array di oggetti "Libro", ok, ma i campi li chiami tutti alla stessa maniera. OK anche questo, visto che JSP se non ricordo male riesce comunque a gestire campi con nomi ripetuti (cosa che invece PHP fa male e per cui c'è la sintassi standard: name="nome_campo_ripetuto[i]"): ti serve davvero complicarti la vita con un form unico in cui gestire tutte le modifiche a tutti i titoli in una sola volta piuttosto che avere una pagina che si occupa di mostrare i titoli in elenco ed una pagina predisposta alla modifica di un titolo alla volta?
    i campi hidden mi servono per far capire quando clicco su modifica/salva a che punto dell'array sono! a questo punto tengo i campi hidden li gestisco nel controller magari aprendo una pagina dove ho un form per il libro selezionato in precedenza e dal li non ho problemi a fargli fare le modifiche!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    Risolto

    Risolto modificando la posizione del form:

    codice:
    <table width="100%" border="0">
                    <tr bgcolor="#0000FF">
                        <td><font color="white">TITOLO</font></td>
                        <td><font color="white">AUTORE</font></td>
                        <td><font color="white">EDITORE</font></td>
                        <td><font color="white">ANNO PUBLICAZIONE</font></td>
                        <td><font color="white">MODIFICA</font></td>
                    </tr>
    
                    <% for (i = 0; i < c; i++) {%>
    
                
              <form action="Controller" method="POST">
                    <tr bgcolor="blue">
                        <td><input type="Text" name="titolo" size="20" value="<%= lib[i].getTitolo()%>"></td>
                        <td><input type="Text" name="autore" size="20" value="<%= lib[i].getAutore()%>"></td>
                        <td><input type="Text" name="editore" size="20" value="<%= lib[i].getEditore()%>"></td>
                        <td><input type="Text" name="annopub" size="20" value="<%= lib[i].getAnno_publicazione()%>"></td>
                        <td>
    
                            
                                <input type="hidden" name="op" value="libri_mod">
                                <input type="text" name="id" size="5" value="<%= lib[i].getId()%>">
                                <input name="submit" type="submit" id="Submit" value="Modifica/Salva" />
                            
                        </td>
                    </tr>
    
                   </form>
                   <% }%>
    
                </table>

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.