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électionner toutes les cases à cocher


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut Sélectionner toutes les cases à cocher
    Bonjour,

    j'ai le formulaire suivant avec plusieurs checkbox

    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
     
     
    echo '<form method="post" action='.$site.'mess_reception.php>';
     
    		echo '<div class="titre04">';
     
    						echo '<div class="titre04_a_bis">';
    							echo '<input type="checkbox" name="id_mp" value="'.$dataa['id_mp'].'">';
    						echo '</div>';
     
    						echo '<div class="titre04_a_bis">';
    							echo '<input type="checkbox" name="id_mp" value="'.$dataa['id_mp'].'">';
    						echo '</div>';
     
    						echo '<div class="titre04_a_bis">';
    							echo '<input type="checkbox" name="id_mp" value="'.$dataa['id_mp'].'">';
    						echo '</div>';
     
    	echo '</div>';
     
    				echo '<input type="submit" name="supprimer" value="Envoyer" />';
     
     
    	echo '<div class="input_mess">';
    				echo '<input type="checkbox" name="suppr_all" value="1">';
    			echo '</div>';
     
    				// sinon, on affiche l'image
    				echo '<a href="#" onclick="javascript:document.formulaire.submit();"><img src="images/poub.jpeg" alt="supprimer" /></a>';
     
    			echo '</div>';
     
    			echo '</form>';
    Et en cliquant sur une seule checkbox (la dernière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    	echo '<div class="input_mess">';
    				echo '<input type="checkbox" name="suppr_all" value="1">';
    			echo '</div>';
    j'aimerais que toutes les checkbox soient sélectionnées...

    C'est possible ?

  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
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="checkbox" name="suppr_all" value="1" onclick="chekAll(this.checked)">';
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function checkAll(etat)
    {
     for (var i=0; document.getElementsByName("id_mp").length <i; i++)
       {
          document.getElementsByName("id_mp")[i].checked=etat;
       }
    }

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Bizarre, il se passe rien...

    le code javascript j'ai mis entre les balises 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
    22
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
     
     <script language="JavaScript" type="text/javascript">
     
    		function checkAll(etat)
    		{
    			for (var i=0; document.getElementsByName("id_mp").length <i; i++)
    			{
    				document.getElementsByName("id_mp")[i].checked=etat;
    			}
    		}
     
    	</script>
     
     
     
     
       </head>
    C'est bien là qu'il faut le mettre ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Par défaut
    oui c'est bien entre balise head
    regarde la console d'erreur si tu utilise firefox

  5. #5
    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
    Par défaut
    Re,
    Montres nous le code html généré.
    @ Helfima , il est préférable de mettre les fonctions javascript dans la balise head.

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i=0; i<document.getElementsByName("id_mp").length; i++)
    A+

  7. #7
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    je ne comprends pas il ne se passe rien du tout.

    IE me dit qu'il y a une erreur de caractère 1 à la ligne 39 :

    document.getElementById(...) a la valeur null ou n'est pas un objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <body onload="document.getElementById('nom').focus()">

  8. #8
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu as bien un élément dont l'id est 'nom' dans ton formulaire ?
    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

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Par défaut Inspirez-vous par cet script de séléction de case à cocher
    Cette code répond votre besoin, mais vous allez changer ses valeurs:
    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
     
    <SCRIPT LANGUAGE = "JavaScript">
    <!--
    function ChangeStatut(uploadForm)
    {
    	if(uploadForm.condition.checked == true)
    	{
    		for ( i=0 ; i < 3 ; i++ )
      		{ 
    			if (uploadForm)
    			{  
    				document.forms[0].chkboxarray[i].checked=true;
    				document.getElementById("choix").innerHTML="D&eacute;s&eacute;ctionner tous";
    				uploadForm.valeur.value=document.forms[0].chkboxarray[i].value;
    			}
    		}
    	}
    	if(uploadForm.condition.checked == false)
    	{
    		//uploadForm.valeur.value=uploadForm.condition.value;
    		for ( i=0 ; i < 3 ; i++ )
      		{ 
    			if (uploadForm)
    			{  
    				document.forms[0].chkboxarray[i].checked=false;
    				document.getElementById("choix").innerHTML="S&eacute;l&eacute;ctionner tous";
    			}
    		}
    	}
    } 
    </script>
    <BODY>
    <FORM name="uploadForm">
    <INPUT TYPE="checkbox" NAME="chkboxarray" VALUE="nom1" onClick="selection_trier(this.form)">nom1<br>
    <INPUT TYPE="checkbox" NAME="chkboxarray" VALUE="nom2" onClick="selection_trier(this.form)">nom2<br>
    <INPUT TYPE="checkbox" NAME="chkboxarray" VALUE="nom3" onClick="selection_trier(this.form)">nom3<br>
    <input type="checkbox" name="condition" value="tous" onClick="ChangeStatut(this.form)">
    <span id="choix">S&eacute;l&eacute;ctionner tous</span><br>
    </form>

  10. #10
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Bonsoir,

    j'ai repris le code en adaptant les champs mais toujours rien :

    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
     
     
    <SCRIPT LANGUAGE = "JavaScript">
    <!--
    function ChangeStatut(uploadForm)
    {
    	if(uploadForm.condition.checked == true)
    	{
    		for (var i=0; i<document.getElementsByName("id_mp").length; i++)
      		{ 
    			if (uploadForm)
    			{  
    				document.forms[0].chkboxarray[i].checked=true;
    				document.getElementById("id_mp").innerHTML="Deselectionner tous";
    				uploadForm.valeur.value=document.forms[0].chkboxarray[i].value;
    			}
    		}
    	}
    	if(uploadForm.condition.checked == false)
    	{
    		//uploadForm.valeur.value=uploadForm.condition.value;
    		for (var i=0; i<document.getElementsByName("id_mp").length; i++)
      		{ 
    			if (uploadForm)
    			{  
    				document.forms[0].chkboxarray[i].checked=false;
    				document.getElementById("id_mp").innerHTML="Selectionner tous";
    			}
    		}
    	}
    } 
    </script>
    et le formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <form method="post" action=http://127.0.0.1/mess_reception.php name="uploadForm"><div class="titre04"><div class="titre04_a_bis"><input type="checkbox" name="id_mp[]" value="44" onClick="selection_trier(this.form)"></div><div class="titre04_b_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=44">Kh</a></div><div class="titre04_c_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=44" class="lien1">test05</a></div><div class="titre04_d_bis">03/03/2010 à 19:03</div><div class="titre04_e_bis"></div></div><div class="separ01"></div><div class="titre04"><div class="titre04_a_bis"><input type="checkbox" name="id_mp[]" value="43" onClick="selection_trier(this.form)"></div><div class="titre04_b_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=43">Kh</a></div><div class="titre04_c_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=43" class="lien1">test05</a></div><div class="titre04_d_bis">03/03/2010 à 19:03</div><div class="titre04_e_bis"></div></div><div class="separ01"></div><div class="titre04"><div class="titre04_a_bis"><input type="checkbox" name="id_mp[]" value="42" onClick="selection_trier(this.form)"></div><div class="titre04_b_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=42">Kh</a></div><div class="titre04_c_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=42" class="lien1">test03</a></div><div class="titre04_d_bis">03/03/2010 à 19:03</div><div class="titre04_e_bis"></div></div><div class="separ01"></div><div class="titre04"><div class="titre04_a_bis"><input type="checkbox" name="id_mp[]" value="41" onClick="selection_trier(this.form)"></div><div class="titre04_b_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=41">Kh</a></div><div class="titre04_c_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=41" class="lien1">test03</a></div><div class="titre04_d_bis">03/03/2010 à 19:03</div><div class="titre04_e_bis"></div></div><div class="separ01"></div><div class="titre04"><div class="titre04_a_bis"><input type="checkbox" name="id_mp[]" value="40" onClick="selection_trier(this.form)"></div><div class="titre04_b_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=40">Kh</a></div><div class="titre04_c_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=40" class="lien1">test02</a></div><div class="titre04_d_bis">03/03/2010 à 19:03</div><div class="titre04_e_bis"></div></div><div class="separ01"></div><div class="titre04"><div class="titre04_a_bis"><input type="checkbox" name="id_mp[]" value="39" onClick="selection_trier(this.form)"></div><div class="titre04_b_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=39">Kh</a></div><div class="titre04_c_bis"><a href="http://127.0.0.1/mess_reception_lire.php?action=lire&id_mp=39" class="lien1">tes01</a></div><div class="titre04_d_bis">03/03/2010 à 19:03</div><div class="titre04_e_bis"></div></div><div class="separ01"></div><div class="input_mess"><input type="checkbox" name="suppr_all" value="1" onClick="ChangeStatut(this.form)"></div><div class="ico_01"><input type="submit" name="supprimer" value="Envoyer" /></div></form>

  11. #11
    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
    Par défaut
    Bonjour,
    Si tu as suivi la correction d'E.Bzz après mon petit étourderie , ça devrait fonctionner .
    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
    <html>
    <head>
    <script type="text/javascript">
    function checkAll(etat)
    {
     for (var i=0; i<document.getElementsByName("id_mp").length ; i++)
       {
          document.getElementsByName("id_mp")[i].checked=etat;
       }
    }
    </script>
    </head>
    <body>
     cocher : decocher tous :<input type="checkbox" name="suppr_all" value="1" onclick="checkAll(this.checked)"/><br/>
    <input type="checkbox" name="id_mp" value="2" /><br/>
    <input type="checkbox" name="id_mp" value="3" /><br/>
    <input type="checkbox" name="id_mp" value="4" /><br/>
    <input type="checkbox" name="id_mp" value="5" /><br/>
    <input type="checkbox" name="id_mp" value="6" /><br/>
    </body>
    </html>
    Ce code est testé.

  12. #12
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    J'ai trouvé ou ça ne va pas :

    mauvaise valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    echo '<input type="checkbox" name="id_mp[]" value="'.$dataa['id_mp'].'" />';
    bonne valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    echo '<input type="checkbox" name="id_mp" value="'.$dataa['id_mp'].'" />';
    J'ai changé le name="id_mp[] en name="id_mp.

    Par contre je me retrouve avec un problème au niveau de mon code php maintanant :

    Warning: Invalid argument supplied for foreach() in e:\easyphp1-8\www\mess_reception.php on line 72


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    			foreach ($_POST['id_mp'] as $id_mp) {
    Mon for each ne focntionne plus

  13. #13
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Ca devient peut-être un problème php, puis-je reprendre ce dernier poste et le mettre sur le forum php ?

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par sam01 Voir le message
    Ca devient peut-être un problème php, puis-je reprendre ce dernier poste et le mettre sur le forum php ?
    Ce que tu peux faire, c'est créer une nouvelle discussion dans le forum PHP approprié, et commencer en donnant un lien vers cette discussion-ci

    A+

  15. #15
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par sam01 Voir le message
    Ca devient peut-être un problème php, puis-je reprendre ce dernier poste et le mettre sur le forum php ?
    Ce sera pas nécessaire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="checkbox" name="id_mp[]" value="'.$dataa['id_mp'].'" />';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function checkAll(etat)
    {
     for (var i=0; i<document.getElementsByName("id_mp[]").length ; i++)
       {
          document.getElementsByName("id_mp[]")[i].checked=etat;
       }
    }
    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

  16. #16
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Génial ça fonctionne !!!


    Merci à tous

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

Discussions similaires

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

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