IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Contrôle de plusieurs checkboxes


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Contrôle de plusieurs checkboxes
    Bonjour je suis débutant en développement web et je sèche sur un problème.

    Ma JSP affiche un tableau semblable à celui-ci (plusieurs lettres et plusieurs nombres) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    A       1        [checkbox]           
            7        [checkbox]
            6        [checkbox]
    B       8        [checkbox]
            21       [checkbox]
    C       74       [checkbox]
            85       [checkbox]
    etc...
    [bouton Supprimer]
    Je voudrais pouvoir supprimer plusieurs nombres du tableau en même temps.

    Ici disons que les classes sont Lettre et Nombre.
    Chaque Lettre a un attribut Vector<Nombre> qui contient les Nombres qui lui sont associés.
    Le nom commun des checkboxes est nombres[].
    Leurs valeurs sont celles des Nombres du tableau.
    Je les récupère dans la Servlet avec String nombres[]= request.getParameterValues("nombres[]");
    Donc nombres[] peut contenir des valeurs de lettres différentes (par exemple : 1 et 85)

    Ce que j'ai déjà fait :
    J'ai mis un input type="hidden" après chaque lettre.
    Le nom commun est lettres[].
    Leurs valeurs sont celles des Lettres du tableau.
    Je les récupère dans la Servlet avec String lettres[]= request.getParameterValues("lettres[]");

    Le problème, c'est que ça récupère toutes les lettres du tableau, et pas seulement celles dont un nombre a été coché.
    La suppression fonctionne mais la boucle parcourt le Vector<Nombre> de chaque lettre, et pas seulement celles dont un nombre a été coché.
    Donc si les listes de lettres/nombres sont très grandes, ce n'est pas du tout optimal.

    Ce que je voudrais :
    Une variable avec juste les lettres concernées (stockées soit dans String lettres[], soit dans un Vector<Lettre> )

    Une idée après mes recherches :
    J'ai trouvé ce code sur CommentCaMarche, qui sert à afficher un message si un certain nombre de checkboxes sont cochées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
     
    <html>
    <head>
    	<title>Untitled</title>
    	<script>
            function checkSelect(elmId){
              maxOptionsSelect = 7;
              form = document.all("detailform");
              inputs = form.getElementsByTagName("input");
              count = 0;
              for(i=0 ; i<inputs.length ; i++){
                if(inputs[i].type=="checkbox" && inputs[i].checked==true){
                      count++;
                    }
              }
              
              if(count > maxOptionsSelect){
                    document.all(elmId).checked=false;
                    alert("Vous ne pouvez sélectionner que maximum " + maxOptionsSelect + " options");
                    return false;
              }
              return false;
            }
            </script>
    </head>
     
    <body>
     
    <form name="detailform">
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_1"/>a<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_2"/>b<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_3"/>c<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_4"/>d<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_5"/>e<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_6"/>f<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_7"/>g<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_8"/>h<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_9"/>i<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_10"/>j<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_11"/>k<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_12"/>l<br/>
    	  <input type="checkbox" onclick="javascript:checkSelect(this.id);" id="cb_13"/>m<br/>	  	  	  		  	  	  	  	  	  
    </form>
     
    </body>
    </html>
    (Pour tester le code vous pouvez le copier-coller là -> http://www.w3schools.com/tags/tryit....tml_image_test )
    Ce que j'ai pensé à faire, c'est d'ajouter à toutes mes checkboxes un attribut id="la lettre concernée".
    Puis la fonction JavaScript ajouterait la lettre seulement si une de ses checkboxes est cochée, et ne l'ajouterait qu'une fois.

    Le souci :
    - Je n'ai jamais fait de JavaScript, je ne sais pas s'il peut manipuler mon lettres[] (ou mon Vector<Lettre> )
    - petit détail, comment faire en sorte de ne pas ajouter la lettre si la checkbox est cochée puis décochée juste après ?

    Merci d'avance pour vos idées =) !
    (et aussi si vous avez un titre plus explicite à me proposer)

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Aucune idée ?

Discussions similaires

  1. Contrôle formulaire avec plusieurs checkbox
    Par Jumano dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/04/2007, 09h36
  2. Réponses: 8
    Dernier message: 08/03/2006, 16h12
  3. récupérer données de plusieurs checkbox
    Par themis121 dans le forum Langage
    Réponses: 46
    Dernier message: 28/11/2005, 16h30
  4. Comment cocher/décocher plusieurs "checkbox"?
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 15/05/2005, 23h38
  5. Cochage de plusieurs checkbox
    Par licorne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/03/2005, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo