[ checkbox ] check/decheck all ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [ checkbox ] check/decheck all ?

par VaN » 31 mai 2006, 12:29

Bonjour tout le monde,

j'essaie d'ajouter des fonctionnalités à mon script, et une me pose problème.

Mon menu de checkbox me permet de savoir à qui un mail doit etre envoyé. Avant d'envoyer le mail, je passe par une étape intermediaire, qui affiche ce qui va être envoyé. Et j'aimerais que sur cette etape intermediaire, les checkbox qui etaient cochées le reste, au cas où l'utilisateur veuille en cocher un décocher une, qu'il ne se retape pas toute l'étape de recochage.

Un exemple sur une série de checkbox :

Code : Tout sélectionner

<li><img src="images/plus.gif" onclick="expand(this)" align="absmiddle" /><input id="1" type="checkbox" onclick="ta(this.id)" name="cat_destinataire[]" value="1" >E-sports <ul> <li><input id="1c1" type="checkbox" name="contact[]" value="[email protected]" ><script type="text/javascript">is_checked(1);</script>><img src="images/flags/fr.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.esportsfrance.com<a href="fiche.php?id=1"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> <li><input id="1c2" type="checkbox" name="contact[]" value="[email protected]" ><script type="text/javascript">is_checked(1);</script>><img src="images/flags/eu.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.xfire.com<a href="fiche.php?id=11"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> </ul> </li>
Et mes 3 fonctions JS :

Code : Tout sélectionner

function expand(n) { var node = n; while ( node.nodeName != "UL" ) node = node.nextSibling; if ( node.style.display == 'block' ) { node.style.display = 'none'; n.src = 'images/plus.gif'; } else { node.style.display = 'block'; n.src = 'images/minus.gif'; } } function ta(id) { var liste=document.getElementById('menu').elements; for (i=0; i<liste.length; i++) { var id_fils = liste[i].id; var id_pere = id_fils.substr(0,id.length); if (id_pere == id) liste[i].checked=document.getElementById(id).checked; } } function is_checked(cat) { if(document.getElementById(cat).checked == true) { write 'checked'; } }
avec ce code là, ma fonction expand() ne marche plus : /
Erreur : Objet attendu

Par contre, lorsque j'efface

Code : Tout sélectionner

function is_checked(cat) { if(document.getElementById(cat).checked == true) { write 'checked'; } }
de mon script, la fonction expand() remarche très bien : /

Est ce la manière la plus simple pour réaliser ce que je souhaite faire ? (garder les cases cochées au passage de mon étape intermédiaire)

par VaN » 30 mai 2006, 15:01

Ok, après comparaison de sources, j'ai trouvé où était l'erreur, un id manquant dans mon <form>.

par starkeus » 30 mai 2006, 11:54

[ checkbox ] check/decheck all ?

par VaN » 30 mai 2006, 11:20

Bonjour à tous,

Voilà, j'ai un formulaire, avec une suite de checkbox.
Pour simplifier, ça ressemble à ça :

[ ] Rubrique 1
- [ ] Rubrique 1.1
- [ ] Rubrique 1.2
- [ ] Rubrique 1.3
[ ] Rubrique 2
- [ ] Rubrique 2.1
- [ ] Rubrique 2.2
- [ ] Rubrique 2.3
[ ] Rubrique 3
- [ ] Rubrique 3.1
- [ ] Rubrique 3.2
- [ ] Rubrique 3.3

J'ai un script qui lorsque je check [ ] rubrique 1, me check les sous-rubriques correspondantes. Mais ce script ne marche que sous IE : / Quelqu'un pourrait'il m'aider pour le faire fonctionner aussi sous FireFox ?

Script JS :

Code : Tout sélectionner

function expand(n) { var node = n; while ( node.nodeName != "UL" ) node = node.nextSibling; if ( node.style.display == 'block' ) { node.style.display = 'none'; n.src = 'images/plus.gif'; } else { node.style.display = 'block'; n.src = 'images/minus.gif'; } }
Le code de mon formulaire, généré en PHP :

Code : Tout sélectionner

<ul class="menu"> <li><img src="images/plus.gif" onclick="expand(this)" align="absmiddle" /><input id="1" type="checkbox" onclick="ta(this.id)" name="cat_destinataire" value="1">E-sports <ul> <li><input id="1c1" type="checkbox" name="contact[]" value="[email protected]"><img src="images/flags/fr.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.esportsfrance.com<a href="fiche.php?id=1"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> <li><input id="1c2" type="checkbox" name="contact[]" value="[email protected]"><img src="images/flags/eu.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.xfire.com<a href="fiche.php?id=11"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> </ul> </li> <li><img src="images/plus.gif" onclick="expand(this)" align="absmiddle" /><input id="2" type="checkbox" onclick="ta(this.id)" name="cat_destinataire" value="2">Counter-Strike <ul> <li><input id="2c1" type="checkbox" name="contact[]" value="[email protected]"><img src="images/flags/fr.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.goodgame.fr<a href="fiche.php?id=4"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> <li><input id="2c2" type="checkbox" name="contact[]" value="[email protected]"><img src="images/flags/nl.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.counter-strike.net<a href="fiche.php?id=3"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> <li><input id="2c3" type="checkbox" name="contact[]" value="[email protected]"><img src="images/flags/nl.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.team-aaa.com<a href="fiche.php?id=5"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> </ul> </li> <li><img src="images/plus.gif" onclick="expand(this)" align="absmiddle" /><input id="3" type="checkbox" onclick="ta(this.id)" name="cat_destinataire" value="3">WarCraft III <ul> <li><input id="3c1" type="checkbox" name="contact[]" value="[email protected]"><img src="images/flags/world.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.w3replays.com<a href="fiche.php?id=6"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> </ul> </li> <li><img src="images/plus.gif" onclick="expand(this)" align="absmiddle" /><input id="4" type="checkbox" onclick="ta(this.id)" name="cat_destinataire" value="4">PES 5 <ul> <li><input id="4c1" type="checkbox" name="contact[]" value="[email protected]"><img src="images/flags/eu.gif" align="absmiddle" border="0" style="margin-right:5px;margin-left:5px;">http://www.pes-online.com<a href="fiche.php?id=7"><img src="images/fiche.gif" align="absmiddle" border="0" style="margin-left:5px;"></a></li> </ul> </li> <li><img src="images/plus.gif" onclick="expand(this)" align="absmiddle" /><input id="5" type="checkbox" onclick="ta(this.id)" name="cat_destinataire" value="8">Test </li> </ul>