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

jQuery Discussion :

Afficher/Cacher un contenu via des cases à cocher


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut Afficher/Cacher un contenu via des cases à cocher
    Bonsoir,
    j'aimerais avoir al fonctionnalité suivante.
    1. Proposer des cases à cocher pour afficher/cocher des contenus de type A, B et C.
    2. Les contenus seront dans des div ayant de classe A, B ou C.


    De quel côté dois-je regarder ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonsoir,
    De quel côté dois-je regarder ?
    regarder à gauche, à droite et encore une fois à gauche, c'est ce que dit le code de la route...

    Plus sérieusement sur le onclick des checkbox tu affiches/caches via le objet.style.display suivant l'état du cochage/décochage

    exemple rapide :
    Code html : 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
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
    #div_a {
      display : none;
    }
    </style>
    <script type="text/javascript">
    function montre( checkobjet, idobjet){
      var oElem = document.getElementById( idobjet);
      oElem.style.display = checkobjet.checked ? 'block' : 'none';
    }
    </script>
    </head>
    <body>
      <input type="checkbox" onclick="montre(this, 'div_a');"> : affiche A
      <div id="div_a">DIV A</div>
    </body>
    </html>
    voila pour le principe après jQuery ou non c'est à toi de voir selon ton besoin.

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Merci pour l'idée. Je vais essayer d'adapter cela à jQuery pour me baser sur l'utilisation de CLASS au lieu des ID.

    Citation Envoyé par NoSmoking Voir le message
    regarder à gauche, à droite et encore une fois à gauche, c'est ce que dit le code de la route...
    Je craignais cette blague. Je vais être obligé de te dénoncer au près d'un modérateur... Mince, je suis cerné...

  4. #4
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bon, je me réponds.

    Code javascript : 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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <script charset="utf-8" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
            <script type="text/javascript">
    /* Sources :
        http://www.developpez.net/forums/d1014151/webmasters-developpement-web/javascript/bibliotheques-frameworks/jquery/checkbox-nuls/#post5662189
    */
    $(document).ready(function(){
        $(":checkbox[name='tosee']").click(function(){
            var objChecked = $("input[name='tosee']:checked"),
                diveToHide = {
                    'div_a': true,
                    'div_b': true,
                    'div_c': true,
                };
     
            for(var i = 0; i < objChecked.length; i++){
                diveToHide[$(objChecked[i]).val()] = false;
            }
     
            for(oneDivName in diveToHide){
                if(diveToHide[oneDivName]){
                    $("div." + oneDivName).hide();
                } else {
                    $("div." + oneDivName).show();
                }
            }
        });
    });
            </script>
        </head>
     
        <body>
            <form>
                <input type="checkbox" name="tosee" checked="checked" value="div_a">
                    Show A-contents
                </input>
                <input type="checkbox" name="tosee" checked="checked" value="div_b">
                    Show B-contents
                </input>
                <input type="checkbox" name="tosee" checked="checked" value="div_c">
                    Show C-contents
                </input>
            </form>
     
            <div class="div_a">
                DIV A-1
            </div>
     
            <div class="div_b">
                DIV B-1
                <div class="div_c">
                    DIV C-1 (dans DIV B)
                </div>
            </div>
     
            <div class="div_c">
                DIV C-2
            </div>
     
            <div class="div_a">
                DIV A-2
                <div class="div_c">
                    DIV C-3 (dans DIV A)
                </div>
            </div>
     
            <div class="div_b">
                DIV B-2
            </div>
     
            <div class="div_c">
                DIV C-4
            </div>
        </body>
    </html>

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    diveToHide = {
        'div_a': true,
        'div_b': true,
        'div_c': true // , SUPPRIMER LA VIRGULE QUI PEUT FAIRE PLANTER
    };
    pourquoi ne pas utiliser each
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(var i = 0; i < objChecked.length; i++){
        diveToHide[$(objChecked[i]).val()] = false;
    }
    deviendrait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $.each( objChecked, function(){
      diveToHide[$(this).val()] = false;
    });
    ou mieux !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $.each( objChecked, function( index, elem){
      diveToHide[$(elem).val()] = false;
    });

  6. #6
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Merci pour la correction et l'amélioration qui fait un code plus joli.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/06/2012, 11h59
  2. Mettre à jour deux tables via des cases à cocher
    Par ElBono dans le forum Langage
    Réponses: 1
    Dernier message: 28/10/2011, 07h42
  3. [AC-2002] lister des problèmes via des cases à cocher
    Par Nekko dans le forum IHM
    Réponses: 3
    Dernier message: 26/06/2009, 22h32
  4. [MySQL] Afficher les valeurs d'un tableau pour des cases à cocher
    Par tiesto95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/12/2008, 16h45
  5. Système d'impression via des cases à cocher
    Par altecad dans le forum Langage
    Réponses: 3
    Dernier message: 06/09/2007, 15h37

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