Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63

    Verifica su checkbox (servlet)

    Ho una tabella in html, con n colonne. Tabella proveniente da un foglio xls, della qualche non so il contenuto o il numero di colonne.

    L'intestazione la costruisco in questo modo

    Codice PHP:
    out.println("<form name= \"niente\"  action = \"Pro\" method=\"POST\" >");
                
                
    out.println("<table border=2>");
                
    // qui stampo l'intestazione
                
    out.println("<tr>");
                
    int k=0;
                for(
    int i=0i<columnCount;i++){
                    
    k++;
                    
    out.println("<th>");
                    
    out.println("<input type=\"checkbox\" name=\"intestazione \" value='"+k+"' >");
                    
    out.print(s.getCell(i0).getContents());
                    
    out.println("</th>");
                }
                
    out.println("</tr>");
    ............ 
    qui stampo il contenuto della tabella...................

    out.println("</table>");
                
                
    out.println("<input type=\"submit\" value=\"Processa\" >");
                
    out.println("</form>"); 
    Volevo sapere come posso recuperare il/i valore/i dei checkbox selezionati nella servlet dove vado ad inviare il tutto. In modo da farmi stampare solo le colonne che mi servono.

    Spero di aver spiegato bene il mio problema, attendo una vostra risposta.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Verifica su checkbox (servlet)

    Originariamente inviato da mauc
    Volevo sapere come posso recuperare il/i valore/i dei checkbox selezionati nella servlet dove vado ad inviare il tutto.
    Chiaramente devi usare i metodi di ServletRequest relativi ai parametri.
    Il punto però è un altro. Se un name di checkbox fosse univoco, basterebbe usare il getParameter e verificare che il parametro "esista" (risultato diverso da null). Se il checkbox non è marcato, il browser non aggiunge nemmeno il name=qualcosa nella request.

    Nel tuo caso hai più checkbox con lo stesso name ma value differenti. Devi quindi usare getParameterValues che ti restituisce un String[] con i valori che nel tuo caso saranno i valori che assegni di volta in volta a quel 'k'.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    quindi devo fare

    Codice PHP:
     String check[] = request.getParameterValues("intestazione"); 
    ?

    io avevo già fatto una pagina, in questo modo

    Codice PHP:
    String check[] = request.getParameterValues("intestazione");
            
            
            try {
                for (
    int i=0i<check.length;i++)
                    
    out.println("vedi "+check[i]);
                
                
                
            } finally {            
                
    out.close();
            } 
    per vedere se mi stampava i valori che selezionavo, ma non stampa niente. Dove sta l'errore?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mauc
    ma non stampa niente. Dove sta l'errore?
    Se il codice html è esattamente quello che vedo nel tuo post:

    codice:
    name=\"intestazione \"
    c'è uno spazio dopo intestazione. Questo conta!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    si ora funziona. Pensavo di poter risolvere il mio problema in questo modo, ma cosi non è.

    Io pensavo di fare un confronto

    Codice PHP:
    out.println("<table border=2>");
                
    out.println("<tr>");
                
    int k=0;
                for(
    int i=0i<columnCount;i++){
                    
    k++;
                    for (
    int l=0l<check.length;l++){
                        if (
    check[l]==k){ // ovvero se il checkbox selezionato è uguale al contatore k visualizza l'intestazione.
                            
    out.println("<th>");
                            
    out.print(s.getCell(i0).getContents());
                            
    out.println("</th>");
                        }
                    }
                    
                }
                
    out.println("</tr>");
                
    out.println("</table>"); 
    ma mi da un errore all'if (giustamente, uno è string e l'altro è un intero. Come ovviare a questo problema?

  6. #6
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    X esempio con:
    codice:
    if(Integer.parseInt(check[l]) == k)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    grazie mille, mentre cenavo era venuto in mente anche a me di fare qualcosa del genere

    ultima cosa, la Checkbox da la possilibità di selezionare una colonna in automatico?
    edit, risolto.


    cosi funziona
    Codice PHP:
    out.println("<input type=\"checkbox\" name=\"intestazione\" value='"+k+"' checked=\"yes\">"); 
    nel senso,sono nella servlet 1 dove creo la tabella, quando tramite il pulsante vado nella servlet 2 dove devo visualizzare le colonne selezionate, la colonna con il checked=yes si vede.
    s

    se uso
    Codice PHP:
    out.println("<input type=\"checkbox\" name=\"intestazione\" value='"+k+"' checked=\"yes\" DISABLED>"); 
    no ((

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.