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

JavaScript Discussion :

Selectionner toutes les CheckBoxs avec boucle imbriquée.


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Points : 21
    Points
    21
    Par défaut Selectionner toutes les CheckBoxs avec boucle imbriquée.
    Bonjour à tous,

    le titre n'est pas très claire mais je ne peux faire mieux.
    Via un bouton 'select all' toutes mes checksbox doivent ou non se cocher.
    J'ai trouver un code qui fonctionne très bien quand dans le formulaire il n'y a qu'une seule boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
    function Check_all(container_id,state)
     {
      var checkboxes = document.getElementById(container_id).getElementsByTagName('input');
      for (var i=0;i<checkboxes.length;i++)
       {
        if(checkboxes[i].type == 'checkbox')
         {
          checkboxes[i].checked = state;
         }
       }
      return true;
     }
    avec en html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form method="post" id="chkuv">
                                            <?php 
                                            $i=0;
                                            foreach($ppo->uvLibCourt as $uv){ ?>
                                                    <input type="checkbox" name="<?php echo $uv; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="info" href=""><?php echo $uv; ?><span class="uv"><?php echo $ppo->uvLibLong[$i]; ?></span></a>
                                            <?php $i++; } ?>         
                                        </form>
    Ce code fonctionne parfaitement, mais pour un autre tableau mon html change un peu pour devenir.
    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
    <form method="post" id="chkuv">
                            <?php 
                            $i=0; 
                            foreach($ppo->uvs as $uv){ ?>
                                <tr> 
                                    <td class="info_horaires">
                                            <input type="checkbox" name="<?php echo $uv->ID_UV; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="info" href=""><?php echo $uv->UV_LIBELLE_COURT; ?><span class="uv"><?php echo $uv->UV_LIBELLE_LONG; ?></span></a>                     
                                        <?php for($j=0;$j<$ppo->nbSem;$j++) {?>
                                            <td valign="top" class="other_day calendar_td" id="<?php echo blabla; ?>"> </td>
                                        <?php } ?>
     
                                    </td> 
                                </tr>
                            <?php $i++; } ?>         
                          </form>
    La fonction js elle ne change pas.

    En gros dans le deuxième cas, au lieu d'un tableau simple, j'ai un tableau à 2 entrées (donc boucle imbriqué). Et pour je ne sais quelle raison, la fonction js ne récupère plus les checkboxes.

    Si quelqu'un a une explication je suis vivement intéressé. Merci d'avance ).

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    1- à lire Important : Les règles incontournables d'utilisation de ce forum

    2- montre nous le comment tu fais appel à la fonction.
    Tu dois utiliser un checkbox du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="toto" onclick="Check_all('chkuv',this.checked)">
    A+.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Pour l'appel de la fonction, oui c'est presque cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                            <input type="button" value="Tout coher" onClick="Check_all('chkuv', true);"/>
                        <input type="button" value="Tout décocher" onClick="Check_all('chkuv', false);"/>
    Désolé si mon message n'étais pas en bonne et due forme, je le pensais.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par Azaxx Voir le message
    Désolé si mon message n'étais pas en bonne et due forme, je le pensais.
    Montre nous ton code HTML généré

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Escuse moi pour la lenteur de ma réaction )

    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
    <form id="chkuv" method="post"></form>
    <tr>
    <td class="info_horaires">
    <input type="checkbox" name="9">
    <a class="info" href="">
    ST312GL
    <span class="uv">Génie Logiciel</span>
    </a>
    </td>
    <td id="blabla" class="other_day calendar_td" valign="top"> </td>
    <td id="blabla" class="other_day calendar_td" valign="top"> </td>
    {...}
    </tr>
    <tr>
    <td class="info_horaires">
    <input type="checkbox" name="7">
    <a class="info" href="">
    ST221ML
    <span class="uv">Management de la chaine logistique</span>
    </a>
    </td>
    <td id="blabla" class="other_day calendar_td" valign="top"> </td>
    <td id="blabla" class="other_day calendar_td" valign="top"> </td>
    {...}
    </tr>
    EDIT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="chkuv" method="post"></form>
    Pour je ne sais quelle raison le form se ferme avant mon code ci-dessus

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Bon ba j'ai trouvé la solution.

    C'est le fait de regarder mon code généré HTML qui ma mis la puce à l’oreille.

    Il faut juste que j'écarte encore plus mes balises de form. pour encadrer tout le <table> et pas juste mes boucles.

    Tout fonctionne mais cela ne m'explique toujours pas pourquoi je ne peux pas juste encadrer mes boucles avec mon <form>

    As-tu une idée?

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est surtout qu'il ne faut pas mettre un formulaire dans une table...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Bovino Voir le message
    C'est surtout qu'il ne faut pas mettre un formulaire dans une table...
    C'est vrai, mais comme pour mon autre tableau cela fonctionnait, je pensais que...

    J'ai essayé avec une div mais le problème restait le même, a partir du moment ou j'ai mes boucles imbriqué je dois mettre mon <form> a l’extérieur.

    Donc en résumé, je ne dois avoir qu'un seul <form> par tableau, et après pour dynamiser les différents éléments composant ce form je les cibles via le js. (et donc pas un <form> pour chaque élément du tableau que je souhaite dynamiser).

    Dans tout les cas, merci à vous deux qui prenez le temps de répondre (rapidement en plus) à nos questions. Vous êtes géants )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script "tout cocher" (checkbox) avec div imbriqué
    Par kalisti dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/01/2009, 19h03
  2. [Formulaire][Javascript] Décocher toutes les checkbox
    Par Salam59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2006, 14h28
  3. Réponses: 1
    Dernier message: 30/11/2005, 14h57
  4. Selectionner toutes les tables
    Par Maxime555 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/06/2005, 09h24
  5. cmt selectionner tout les champ d'une liste deroulante
    Par mangamat dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/03/2005, 10h08

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