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 :

Sélection de toutes les cases à cocher d'une page


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Par défaut Sélection de toutes les cases à cocher d'une page
    bonjour
    je créé un tableau avec des checkbox a l'aide d'un for.
    et je voudrais faire un bouton "tout séléctionner" et un autre " tout désélectionner".
    mais je sais pas comment faire ...

    pourriez vous m'aider svp

    merci

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonjour,

    Pas faisable en PHP... Tu trouvera ton bonheur du coté javascript

    ++

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Effectivement en php seul, ce n'est pas possible et il va falloir ajouter un peu de javascript.

    Je te conseille d'aller voir cette source en JS : Sélectionner/désélectionner plusieurs cases à cocher
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Par défaut
    alors voila j'ai trouvé ce code :
    Entre <HEAD> et </HEAD> :
    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
    <script type="text/javascript">
    <!--
    // conteneur = id du bloc (<div>, <p> ...) contenant les checkbox
    // a_faire = '0' pour tout décocher
    // a_faire = '1' pour tout cocher
    // a_faire = '2' pour inverser la sélection
     
    function GereChkbox(conteneur, a_faire) {
    var blnEtat=null;
    var Chckbox = document.getElementById(conteneur).firstChild;
    	while (Chckbox!=null) {
    		if (Chckbox.nodeName=="INPUT")
    			if (Chckbox.getAttribute("type")=="checkbox") {
    				blnEtat = (a_faire=='0') ? false : (a_faire=='1') ? true : (document.getElementById(Chckbox.getAttribute("id")).checked) ? false : true;
    				document.getElementById(Chckbox.getAttribute("id")).checked=blnEtat;
    			}
    		Chckbox = Chckbox.nextSibling;
    	}
    }
    //-->
    </script>
    Entre <BODY> et </BODY> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form>
    <input type="button" value="Tout cocher" onClick="GereChkbox('div_chck','1');">&nbsp;&nbsp;&nbsp;
    <input type="button" value="Tout décocher" onClick="GereChkbox('div_chck','0');">&nbsp;&nbsp;&nbsp;
    <input type="button" value="Inverser la sélection" onClick="GereChkbox('div_chck','2');">
    <br /><br />
    	<div id="div_chck">
    	<input type="checkbox" name="checkbox1" id="checkbox1" value="1"><label for="checkbox1">Choix 1</label><br />
    	<input type="checkbox" name="checkbox2" id="checkbox2" value="2"><label for="checkbox2">Choix 2</label><br />
    	<input type="checkbox" name="checkbox3" id="checkbox3" value="3"><label for="checkbox3">Choix 3</label><br />
    	<input type="checkbox" name="checkbox4" id="checkbox4" value="4"><label for="checkbox4">Choix 4</label><br />
    	<input type="checkbox" name="checkbox5" id="checkbox5" value="5"><label for="checkbox5">Choix 5</label>
    	</div>
    </form>
    et puis j'ai essayer de l'adapter pour moi ...
    mais moi j'ai un tableau, et la j'ai des gros problemes avec le <div>

    voila a peu pres ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="div_chck">
        <td>
             <input type="checkbox" name="checkbox1" id="checkbox1" value="1"><label for="checkbox1">Choix 1</label>
        </td>
    </div>
    mais dès que j'ajoute les td, ba ca marche plus ....


    avez vous une idée de prk ?

    merci

    ps : je viens de tester avec tr, et ca marche, JE NI COMPREND RIEN !!!!

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Par défaut
    personne ne voix comment faire co-habiter div et table ??
    ca doit pourtant etre possible !

  6. #6
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    firstChild -> renvoie l'enfant !

    Chckbox.nextSibling ->renvoie lesuivant

    dans ton cas c'est des td!!


    fais une recherche sur
    getElementByTagname
    ...

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Par défaut
    c koi getElementByTagname ?

    comme je l'ai dit ce code n'est pas le mien, j'essaie de l'adapter c tout !
    tu pense que l'erreur viens de la fonction javascript ? (c pas la que je cherchais !)

    est ce que tu pourrais m'e dire plus , je comprend pas trop ...

    merci

  8. #8
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inputtableau=document.getElementById(conteneur).getElementByTagName("input");
    ceci te renvoie la liste des éléments "input" de ton conteneur.

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Par défaut
    je suis dsl matthieu mais je vois pas ce que tu veux que j'essaie ???
    (je doit etre un peu c.. )

    tu voudrais pas me renvoyer mon code avec t modif ?
    merci

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Par défaut
    alors j'ai trouver une modif du code précédent qui est sencé fonctionner ...
    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
     
    Tout d'abord créez votre tableau HTML
     
    <table id_tableau> <tr><td>code</td><td>libelle</td></tr>
    <tr><td><input type="checkbox" ....></td><td>Rouge</td></tr>
    <tr><td><input type="checkbox" ....></td><td>Jaune</td></tr>
    <tr><td><input type="checkbox" ....></td><td>Vert</td></tr>
    </table>
     
     
    Puis ajouter vos boutons pour déclencher le traitement voulu
     
    <input type="button" value="Tout cocher" onClick="GereChkbox('tableau','1');" class="button">
    <input type="button" value="Tout décocher" onClick="GereChkbox('tableau','0');" class="button">
    <input type="button" value="Inverser la sélection" onClick="GereChkbox('tableau','2');" class="button">
     
     
    Enfin faites votre javascript comme ceci
     
    // a_faire = '0' pour tout décocher
    // a_faire = '1' pour tout cocher
    // a_faire = '2' pour inverser la sélection
    function GereChkbox(conteneur, a_faire)
    {
    var blnEtat=null;
    var Chckbox = document.getElementById(conteneur).getElementsByTagName('input');
    for (i in Chckbox)
    {
    if (Chckbox[i].nodeName=="INPUT")
    if (Chckbox[i].getAttribute("type")=="checkbox")
    {
    blnEtat = (a_faire=='0') ? false : (a_faire=='1') ?
    true :
    (document.getElementById(Chckbox[i].getAttribute("id")).checked) ?
    false :
    true;
    document.getElementById(Chckbox[i].getAttribute("id")).checked=blnEtat;
    }
    }
    }
    mais j'arrive pas a le faire tourner ...

  11. #11
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    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
    <script language="JavaScript"> 
     
    function GereChkbox(conteneur, a_faire)
    {
    var blnEtat=null;
    var Chckbox = document.getElementById(conteneur).getElementsByTagName('input');
    for (i in Chckbox)
    {
    if (Chckbox[i].nodeName=="INPUT")
    if (Chckbox[i].getAttribute("type")=="checkbox")
    {
    blnEtat = (a_faire=='0') ? false : (a_faire=='1') ?true :!Chckbox[i].checked;
    Chckbox[i].checked=blnEtat;
    }
    }
    }
     
     
    </script> 
     
     
    <table id="id_tableau"> <tr><td>code</td><td>libelle</td></tr>
    <tr><td><input type="checkbox" ....></td><td>Rouge</td></tr>
    <tr><td><input type="checkbox" ....></td><td>Jaune</td></tr>
    <tr><td><input type="checkbox" ....></td><td>Vert</td></tr>
    </table>
     
     
    <input type="button" value="Tout cocher" onClick="GereChkbox('id_tableau','1');" class="button"> 
    <input type="button" value="Tout décocher" onClick="GereChkbox('id_tableau','0');" class="button"> 
    <input type="button" value="Inverser la sélection" onClick="GereChkbox('id_tableau','2');" class="button">

  12. #12
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 100
    Par défaut
    super ca mrche o poil !
    merci matthieu

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

Discussions similaires

  1. Sélectionner toutes les cases à cocher
    Par sam01 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 07/03/2010, 16h04
  2. sélectionner toutes les cases à cocher
    Par lebreton22 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/08/2007, 11h56
  3. Cocher toutes les cases à cocher d'un formulaire
    Par petitloup71 dans le forum Access
    Réponses: 12
    Dernier message: 14/09/2006, 11h37
  4. cocher toutes les cases à cocher
    Par philippe123 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/09/2005, 19h13
  5. Récupérer toutes les cases à cocher
    Par psyco2604 dans le forum ASP
    Réponses: 7
    Dernier message: 14/10/2004, 11h54

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