Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Eliminare riga da un database

    Ciao a tutti, ho un problema, dovrei eliminare una riga di un database su richiesta di un utente.
    Il fatto č che la query la so realizzare quando so quali parametri passare per l'eliminazione ma sto lavorando su un sito web, dove in una tabella ho per ogni voce un bottone che mi permette di cancellare la corrispondente voce. Il fatto č, come faccio all'azione del bottone a rimuovere la riga corrispondente? Non ditemi che il bottone ci sta accanto, perchč su una tabella di 100 elementi ho 100 righe con 100 bottoni, ma come faccio ad avere un identificativo? Ho pensato c' č un attributo html da potere passare come parametro ad un metodo Java per l'eliminazione? Non so...c'č:

    codice:
    onSubmit=""........name=""
    Ci sarą un tag corrispondente per numerare un bottone?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    Il fatto č, come faccio all'azione del bottone a rimuovere la riga corrispondente?
    Tipicamente si passa un "parametro" che banalmente puņ essere proprio il ID del record.

    Se si tratta di un link (quindi un GET) si mette il parametro nella query string, es.:
    <a href="url-di-elimina?id=1234">Elimina</a>
    ...
    <a href="url-di-elimina?id=1235">Elimina</a>

    Se si tratta di un pulsante (in un form per GET o preferibilmente POST):

    <form method="post" action="url-di-elimina"><input type="hidden" name="id" value="1234"><input type="submit" value="Elimina"></form>
    ...
    <form method="post" action="url-di-elimina"><input type="hidden" name="id" value="1235"><input type="submit" value="Elimina"></form>
    Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet

  3. #3
    In realtą sono in una JSP, dove faccio una query che mi restituisce tutte le pizze di un utente, quindi genero una tabella con un numero indefinito di righe che non posso sapere a priori, e ogni riga con il bottone per eliminare la prenotazione. Quindi nel codice HTML avrņ una table e l' onClick del bottone mi deve consentire di eliminare la suddetta riga, vorrei invocare un metodo Java passando un riferimento al numero del bottone, ma come faccio a numerarli?
    Sono in confusione...

    P.S <%=ris%> contiene il risultato di una query con l'elenco delle prenotazioni.

    codice:
     <table id="tabella" width="50%" height="35%" cellspacing="6" cellpadding="4" border="1" >
                                            <tr>
                                                <td align="left"><b>ID</b> </td> 
                                                <td align="left"><b>NOME</b></td> 
                                                <td align="left"><b>COGNOME<b></b> </td>
                                            </tr>
                                             <%=ris%>
                                             <input type="button" value="Cancella" number="" name="cancel">   //COME REALIZZARE?
                                            
            </table>

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    In realtą sono in una JSP
    Appunto, č proprio in una JSP che puoi generare "dinamicamente" un documento HTML.

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    dove faccio una query
    A dire il vero una JSP non "dovrebbe" fare query o logiche di business. Dovrebbe farlo una Servlet (se non si usano framework specifici) e poi usare le JSP solo come "view".

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    vorrei invocare un metodo Java passando un riferimento al numero del bottone
    Una volta che tutto il documento HTML generato č arrivato al client (browser), lģ sul client non centra pił nulla il Java lato server. Se vuoi far eseguire di nuovo qualcosa sul server, il client deve fare una nuova request in GET o POST al server. Quindi o un link o il submit di un form. Sostanzialmente come gli esempi che ho fatto.

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    ma come faccio a numerarli?
    Se fai una query, dovresti farti anche restituire il ID di ogni record. ID che deve essere chiaramente una colonna che hai creato nella tabella e caricato con un valore imposto/calcolato oppure autogenerato dal DB (sequence o auto-increment a seconda del DB). Quale dei due modi in base al significato/uso della tabella.
    E con il ID parametrizzi la request GET o POST da fare.
    Ultima modifica di andbin; 16-01-2014 a 00:46
    Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet

  5. #5
    La JSP in realtą prende quel valore che č il risultato di una function che esegue la query mediante un oggetto di un'altra classe che fa il lavoro...non so se č corretto.
    Per il resto...quello che non capisco č, ovviamente devo inviare al Server nuovamente informazioni per cancellare la mia voce dal database. Io ottengo da una query una tabella con le prenotazioni di una pizzeria, ma non posso sapere a priori quante voci conterrą la tabella. Quindi come faccio a creare un form? Avrei pensato ai bottoni riga per riga, con un metodo onSubmit, solo che sono di coccio e non capisco come realizzare tutti questi bottoni con ID incrementali...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    La JSP in realtą prende quel valore che č il risultato di una function che esegue la query mediante un oggetto di un'altra classe che fa il lavoro...non so se č corretto.
    Sģ ok, in questo senso č gią meglio il fatto che il codice della query non sia materialmente nella JSP. Ma il fatto di mettere poi dello scriptlet ( <% ... %> e <%= .... %> ) nelle JSP non č comunque un buon approccio. Fattibile solo se non sei a conoscenza di altre soluzioni migliori (es. se non hai ancora studiato JSTL o altri framework specifici) e comunque per cose davvero "all'acqua di rose", come si dice.

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    ovviamente devo inviare al Server nuovamente informazioni per cancellare la mia voce dal database.
    Sģ, il client deve fare una richiesta HTTP in GET o POST.

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    Io ottengo da una query una tabella con le prenotazioni di una pizzeria, ma non posso sapere a priori quante voci conterrą la tabella.
    Non ha importanza quanti sono ai fini di poter poi fare la cancellazione.

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    Quindi come faccio a creare un form? Avrei pensato ai bottoni riga per riga, con un metodo onSubmit, solo che sono di coccio e non capisco come realizzare tutti questi bottoni con ID incrementali...
    Nella prima risposta ti ho fatto l'esempio sia dei link, sia dei pulsanti di submit (in form a sé stanti). Quale č il dubbio?
    Io ho scritto l'esempio HTML come "vedrebbe" il client. Chiaramente i valori degli ID, quei 1234, 1235 ecc.... li devi emettere tu "dinamicamente" nella JSP. Il resto č "template", ovvero fisso, iterato per le N righe.

    Riguardo il ID, allora:
    - o č un ID del record su DB, cioč il valore da una colonna fisicamente presente nella tabella su DB.
    - oppure č un indice in una tua struttura dati (array o lista) che perņ devi tenere sul server, presumibilmente in "sessione", in modo che sia la stessa dal momento in cui fai la query e generi la pagina al momento in cui facendo la richiesta per la cancellazione puoi indirizzare quell'elemento preciso.

    Ma anche se usi il secondo approccio, per cancellare il record su DB hai comunque bisogno di un ID del record in tabella.
    Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Sģ ok, in questo senso č gią meglio il fatto che il codice della query non sia materialmente nella JSP. Ma il fatto di mettere poi dello scriptlet ( <% ... %> e <%= .... %> ) nelle JSP non č comunque un buon approccio. Fattibile solo se non sei a conoscenza di altre soluzioni migliori (es. se non hai ancora studiato JSTL o altri framework specifici) e comunque per cose davvero "all'acqua di rose", come si dice.


    Sģ, il client deve fare una richiesta HTTP in GET o POST.


    Non ha importanza quanti sono ai fini di poter poi fare la cancellazione.


    Nella prima risposta ti ho fatto l'esempio sia dei link, sia dei pulsanti di submit (in form a sé stanti). Quale č il dubbio?
    Io ho scritto l'esempio HTML come "vedrebbe" il client. Chiaramente i valori degli ID, quei 1234, 1235 ecc.... li devi emettere tu "dinamicamente" nella JSP. Il resto č "template", ovvero fisso, iterato per le N righe.

    Riguardo il ID, allora:
    - o č un ID del record su DB, cioč il valore da una colonna fisicamente presente nella tabella su DB.
    - oppure č un indice in una tua struttura dati (array o lista) che perņ devi tenere sul server, presumibilmente in "sessione", in modo che sia la stessa dal momento in cui fai la query e generi la pagina al momento in cui facendo la richiesta per la cancellazione puoi indirizzare quell'elemento preciso.

    Ma anche se usi il secondo approccio, per cancellare il record su DB hai comunque bisogno di un ID del record in tabella.
    Allora creo la tabella delle prenotazioni con i bottoni che mi dirigono ad una pagina JSP che esegue la query, potresti darmi una mano nel realizzare il bottone? Sto uscendo pazzo con le virgolette....
    Questo č il codice dove genero la tabella con i vari bottoni che devono linkare alla pagina di rimozione dal database, il numero della riga da eliminare lo prendo con una funzione getString(numero); perņ il bottone non funziona, temo che qualche virgoletta non vada...


    codice:
    while (rs.next()) {                         ris += "<tr> <td align=left >"+rs.getString("ID") +"</td>"+
                             "<td align=left>"+rs.getString("NOME")+"</td>"+ "<td align=right>"+
                            rs.getString("COGNOME")+"</td>"
                                     +"<td ><input onclick=\"location.href='eliminaPrenotazione.jsp?'"+rs.getString("NUMERO")+"\" value=\"ELIMINA\" type=\"button\" /></td></tr>"; 
                        }

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    temo che qualche virgoletta non vada...

    codice:
    while (rs.next()) {                         ris += "<tr> <td align=left >"+rs.getString("ID") +"</td>"+
                             "<td align=left>"+rs.getString("NOME")+"</td>"+ "<td align=right>"+
                            rs.getString("COGNOME")+"</td>"
                                     +"<td ><input onclick=\"location.href='eliminaPrenotazione.jsp?'"+rs.getString("NUMERO")+"\" value=\"ELIMINA\" type=\"button\" /></td></tr>"; 
                        }
    No, non ci siamo comunque. Se scrivi una cosa del genere in una JSP ti complichi solamente la vita! E molto ....
    Le JSP le devi vedere con un documento di testo/HTML/XML (o qualunque altro markup o testo che deve essere inviato al client) in cui la maggior parte č output "fisso", eventualmente ripetuto e in cui in mezzo ci sono parti che emettono in modo "dinamico" dei valori.

    Es.:

    codice:
      .... 
    
    <table>
    <% while (rs.next()) { %>
      <tr>
        <td><%= rs.getString("NOME") %></td>
        <td><%= rs.getString("COGNOME") %></td>
      </tr>
    <% } %>
    </table>
    
      ....

    E prima che eventualmente me lo chiedi: sģ, come ho scritto č giusto che dopo rs.getString("NOME") non ci sia il ';' perché <%= %> č una "expression" JSP che nella servlet generata dalla JSP corrisponde ad un:

    out.write( la_espressione );
    che quindi diventa
    out.write(rs.getString("COGNOME"));

    se avessi messo il ';' sarebbe stato:
    out.write(rs.getString("COGNOME"););

    ovviamente sintassi Java errata.

    A parte il fattore estetico/concettuale l'unico problema che rimane č che cosģ non viene fatto alcun "escape" dei caratteri speciali di HTML. Se un pezzo di output dinamico emette es. un '<' (minore), il tuo HTML risulterebbe sballato.
    Ultima modifica di andbin; 16-01-2014 a 21:37
    Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet

  9. #9
    E prima che eventualmente me lo chiedi: sģ, come ho scritto č giusto che dopo rs.getString("NOME") non ci sia il ';'
    Ah wow...grazie mille

    Il fatto č che io ho una classe chiamata ConnectionDb.java che svolge tutte le operazioni sul database....e nelle JSP invoco i metodi e prendo i risultati. Quindi vorrei creare la tabella delle prenotazioni in questa classe, e inserire anche il bottone per eliminare la riga, poi dalla JSP invoco questo metodo in modo da avere a video la tabella. Solo che avere la tabella creata con i bottoni da una parte, e la JSP da un'altra non mi facilita nell'uso di una funzione javascript...del tipo:

    codice:
    "</td><td ><input onclick=\"javascript:cancella("+rs.getString("NUMERO")+")\" value=\"ELIMINA\" type=\"button\" /></td></tr>"

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    Il fatto č che io ho una classe chiamata ConnectionDb.java che svolge tutte le operazioni sul database....
    E questo č perlomeno "buono".

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    e nelle JSP invoco i metodi e prendo i risultati.
    E anche questo puņ andare, nel senso che č comunque il "male minore".

    Quote Originariamente inviata da Darčios89 Visualizza il messaggio
    Quindi vorrei creare la tabella delle prenotazioni in questa classe
    Cosģ perņ perdi il vantaggio delle pagine JSP, ovvero la possibilitą di scrivere tranquillamente e direttamente gran parte della parte "template" (fissa) senza doverti preoccupare di quoting, escaping, concatenazioni.

    Ti č chiaro ora?
    Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet

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.