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 :

Cocher/Decocher une liste de checkbox


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 189
    Points : 57
    Points
    57
    Par défaut Cocher/Decocher une liste de checkbox
    Bonjour,

    voila j'ai une grande liste de checkbox a selectionner et deselectionner en un simple click.

    j'ai mis ca dans l'input:

    <input type=\"checkbox\" id=\"chk".$compt."\" name=\"opt".$compt."\"/>

    puis j'ai aussi un champs hidden qui contient le nb de checkbox

    et voici mon code javascript pour le faire:

    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
     
    var hdnopt=document.getElementById("hdnopt")
    var coch_decoch=document.getElementById("coch_decoch")//id du lien cliqué
    var b=false
    var chk
     
    function cocher_decocher()
    {
     
    	if(!b)
    	{
    		for(var i=hdnopt.value;i>=0;i--)
    		{
    			chk=document.getElementById("chk"+i)
    			chk.checked=true
    		}
    		b=true;
    	}
    	else
    	{
    		for(var i=hdnopt.value;i>=0;i--)
    		{
    			var chk=document.getElementById("chk"+i)
    			chk.checked=false
    		}
    		b=false;
    	}
    }
     
    coch_decoch.onclick=cocher_decocher
    mais ca marche pas et au bas de la page y a une erreur du genre
    null à la valeur NULL ou n'est pas un objet

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    je n'ai pas compris: tu peux mettre un morceau de code complet (interprétable quoi!)?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 189
    Points : 57
    Points
    57
    Par défaut
    donc voila

    je cherche tous les fichiers d'"un dossier et j'attribue a chaque fichier une case à cocher pour pouvoir les supprimer, voici le code:

    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
     
    <table>
    <?php
     
    $handle=@opendir($dir) or die("Impossible d'ouvrir le fichier de production $dir");//Ouverture du répertoire et récupération du pointeur
     
    $compt=0;
    ?>
    <tr class="titre"><td style="text-align:center">Nom Fichier</td><td colspan="2" style="text-align:center">Action</td><td><a id="coch_decoch" href="#">Cocher/Decocher</a></td></tr>
    <?php
    while(false !== ($file = readdir($handle)))
    {
               if(is_file($dir."\\".$file))
                       {
                                    //pr chaque fichier, on regarde si il est supprimé ou non, si oui, on enleve le lien suppression:
                                    
                                    $req_verif_suppr="select NomFichier
                                                      from log
                                                                      where NomFichier='$file'
                                                                      and TypeOP='SUPPR'";
                                    $res_verif_suppr=mysql_query($req_verif_suppr,$connexion) or die ("Impossible d'executer la requete: verif fichier supprim&eacute;");
                                    
                                    if(mysql_numrows($res_verif_suppr)==0)
                                    {
                       
                                            echo "<tr><td><img src=\"fichier.ico\" height=\"20\" width=\"15\" alt=\"\"/>$file</td><td><a href=\"suppression.php?addrfichier=$dir\\$file&type=$type\" onclick=\"return confirm('Voulez-vous vraiment supprimer ce fichier ?');\">Suppression</a></td><td>&nbsp;&nbsp;<a href=\"deplacer.php?nomfichier=$file&dir=$dir&type=$type\">D&eacute;placer</a></td><td style=\"text-align:center\"><input type=\"checkbox\" id=\"chk".$compt."\" name=\"opt".$compt."\"/></td></tr>";
                                            echo "<input type=\"hidden\" value=\"$file\" name=\"fichier".$compt."\"/>";
                                    }
                                    else
                                    {
                                            echo "<tr><td><img src=\"fichier.ico\" height=\"20\" width=\"15\" alt=\"\"/>$file</td><td>Suppression</td><td>&nbsp;&nbsp;<a href=\"deplacer.php?nomfichier=$file&dir=$dir&type=$type\">D&eacute;placer</a></td><td style=\"text-align:center\"><input type=\"checkbox\" id=\"chk".$compt."\" name=\"opt".$compt."\" \"/></td></tr>";
                                            echo "<input type=\"hidden\" value=\"$file\" name=\"fichier".$compt."\"/>";
                                    }
                                    $compt++;
                       }
               
    }
     
    ?>
    </table>
    	<input type="hidden" name="nbopt" id="hdnopt" value="<?php echo $compt;?>"/> 
    	<input type="hidden" name="type" value="<?php echo $type;?>"/>
    	<br/><input type="submit" name="formu" value="Supprimer"/>&nbsp;<input type="submit" name="formu" value="Deplacer"/>
    apres je met dans un hidden le nb de case à cocher.

    dans le javascript je recupere l'id de mon lien, des que je fais un onclick ca appel la fonction cocher_decocher

    et apres je coche tout ou je decoche tout

  4. #4
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Plutôt que faire un : document.getElementById("chk"+i), je te conseillerais de passer directement l'id du checkbox en paramètre a ta fonction :
    Ton appel se ferait ainsi comme suit :
    cocher_decocher ("chk"+i)

    avec un désignation : function cocher_decocher (c) { ... }

    Ensuite dans le code de la fonction plus qu'à faire :
    document.getElementById(c)

    Moi c'est ce que j'ai fait dans mon script et ça fonctionne parfaitement...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 189
    Points : 57
    Points
    57
    Par défaut
    j'ai pas trop compris ce que tu as dit

  6. #6
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    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
    function cocher_decocher(c)
    {
    
    	if(!b)
    	{
    					chk=document.getElementById(c)
    			chk.checked=true
    				b=true;
    	}
    	else
    	{
    					var chk=document.getElementById(c)
    			chk.checked=false
    				b=false;
    	}
    }

  7. #7
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php echo "<tr class=\"titre\"><td style=\"text-align:center\">Nom Fichier</td><td colspan=\"2\" style=\"text-align:center\">Action
    </td><td><a onClick='cocher_decocher(\"chk\" " . $compt . ")' id=\"coch_decoch\" href=\"#\">Cocher/Decocher</a></td></tr>"

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 189
    Points : 57
    Points
    57
    Par défaut
    mouai mais je capte pas que ca ca marche :

    document.getElementById("check0").checked=false
    document.getElementById("check1").checked=false
    document.getElementById("check2").checked=false
    document.getElementById("check3").checked=false

    et quand je le genere a l'aide du php le meme code ca marche pas:

    for(i=hdnopt.value;i>=0;i--)
    {

    document.getElementById("check"+i).checked=true
    }

    ca doit faire le meme resultat!!!

    l'erreur:

    document.getElementById a la valeur NUll ou n'est pas un objet

  9. #9
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    document.getElementById("check"+i) ne fonctionne pas car "check"+i n'est pas considéré comme une chaine à part entière.
    Au pire mets dans une variable avant :
    var t = "chk" + i ;


    document.getElementById(t)

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 189
    Points : 57
    Points
    57
    Par défaut
    j'ai déja testé ca marche pas

Discussions similaires

  1. Cocher une liste de checkbox mais pas toutes
    Par Equinoxe5 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/05/2010, 17h28
  2. Mettre une liste de checkbox dans un cadre
    Par eclipse012 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/01/2007, 14h49
  3. Parcourir une liste de checkbox
    Par fet dans le forum ASP
    Réponses: 3
    Dernier message: 25/07/2006, 12h35
  4. Problèmes avec des cases à cocher et une liste déroulante
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 10h52

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