Cocher une liste de checkbox.

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 : Cocher une liste de checkbox.

par agité » 09 nov. 2007, 12:35

La version pour une boite button pour le nom :
function selectionnerTout(formulaire){
  //récupération de toutes elements input
  lesInputs = document.getElementsByTagName('input');
  //parcours des inputs
  for(var i=0; i<lesInputs.length; i++) {
    //si l'input est une case à cocher et que ce n'est pas la case "tout cocher/décocher"
    if(!(lesInputs[i].id=="tousaucun")) {
      //on met la valeur de la case égale à celle de la case "tout cocher/décocher"
      lesInputs[i].checked=true;
    }
  }
} 
Merci je met résolu.

par agité » 09 nov. 2007, 12:27

as tu essaié de debugguer avec des alert() dans la fonction javascript?
En effet tu utilise un checkbox qui coche tout les autres plutôt qu'un button j'avais pas fait attention, je vais essayer de modif le script pour faire passer un button.

Merci pour ton aide !

par d0m » 09 nov. 2007, 12:00

as tu essaié de debugguer avec des alert() dans la fonction javascript?

par agité » 09 nov. 2007, 10:59

chez moi pourtant ca marche sans problème.
Je ne sais pas si ca peut venir de ça mais tu déclares tous tes checkbox avec le même ID.
<input type="checkbox" name="list[]" id="list" ... >
Tous les élements d'un document doivent avoir une ID différente les uns des autres.
en utilisant le systeme des id differentes avec
id="list<?php echo $i++; ?>"
il ne fonctionne toujours pas.

par d0m » 09 nov. 2007, 09:22

chez moi pourtant ca marche sans problème.
Je ne sais pas si ca peut venir de ça mais tu déclares tous tes checkbox avec le même ID.
<input type="checkbox" name="list[]" id="list" ... >
Tous les élements d'un document doivent avoir une ID différente les uns des autres.

par agité » 08 nov. 2007, 18:40

j'utilise toujours :
while($data = mysql_fetch_array($res))
{
?>
<input type="checkbox" name="list[]" id="list" value="<?php echo $data['Id']; ?>"><a href=\"../_medias/doc/programme/<?php echo $data['Chemin']; ?>"><?php echo $data['Libelle']; ?></a><br />
<?php
}	
pour faire mes checkbox au cas ou ca peut aider.

merci pour ton aide d0m

par agité » 08 nov. 2007, 18:36

j'ai pourtant rajouter l'id "tousaucun" a l'input final
Ce n'est pas seulement son identifiant ID, c'est son identifiant NAME aussi :

Code : Tout sélectionner

formulaire.tousaucun.checked

Code : Tout sélectionner

<input type="button" id="tousaucun" name="tousaucun" value="tout cocher" onClick="selectionnerTout(this.form)">
Ok j'ai bien recopier ce boutton mais il ne m'affiche aucune erreur de javascript et il semble ne pas changer de valeur sur le boutton.

par d0m » 08 nov. 2007, 17:49

j'ai pourtant rajouter l'id "tousaucun" a l'input final
Ce n'est pas seulement son identifiant ID, c'est son identifiant NAME aussi :

Code : Tout sélectionner

formulaire.tousaucun.checked

Code : Tout sélectionner

<input type="button" id="tousaucun" name="tousaucun" value="tout cocher" onClick="selectionnerTout(this.form)">

par agité » 08 nov. 2007, 17:08

j'avais le même problème que toi et en attendant une solution propre, j'ai utilisé ce script :

Code : Tout sélectionner

function selectionnerTout(formulaire){ //récupération de toutes elements input lesInputs = document.getElementsByTagName('input'); //parcours des inputs for(var i=0; i<lesInputs.length; i++) { //si l'input est une case à cocher et que ce n'est pas la case "tout cocher/décocher" if((lesInputs[i].getAttribute('type')=="checkbox")&&(!(lesInputs[i].id=="tousaucun"))) { //on met la valeur de la case égale à celle de la case "tout cocher/décocher" lesInputs[i].checked=formulaire.tousaucun.checked; } } }
j'utilise ta fonction et avec ca j'ai mis en fin de script

Code : Tout sélectionner

<input type="button" id="tousaucun" value="tout cocher" onClick="selectionnerTout(this.form)">
mais rien ne se passe j'ai pourtant rajouter l'id "tousaucun" a l'input final, mais ca ne change rien, pourtant il me semble que tout est correct avec ton script.

par d0m » 08 nov. 2007, 15:11

j'avais le même problème que toi et en attendant une solution propre, j'ai utilisé ce script :

Code : Tout sélectionner

function selectionnerTout(formulaire){ //récupération de toutes elements input lesInputs = document.getElementsByTagName('input'); //parcours des inputs for(var i=0; i<lesInputs.length; i++) { //si l'input est une case à cocher et que ce n'est pas la case "tout cocher/décocher" if((lesInputs[i].getAttribute('type')=="checkbox")&&(!(lesInputs[i].id=="tousaucun"))) { //on met la valeur de la case égale à celle de la case "tout cocher/décocher" lesInputs[i].checked=formulaire.tousaucun.checked; } } }

par agité » 07 nov. 2007, 15:42

Donnes un ID à chaque chackbox et utilise une fonction qui les cohera toutes avec document.getelementbyid() au lieu de document.getelementbyname().
en utilisant :
<input type="checkbox" name="list[]" id="list">
et

onClick="check(getElementById('list'))"
ou
onClick="check(this.form.element('list'))"
il ne me retourne aucune erreur JS mais il ne coche rien non plus :(

par h0_noMan » 07 nov. 2007, 15:35

Donnes un ID à chaque chackbox et utilise une fonction qui les cohera toutes avec document.getelementbyid() au lieu de document.getelementbyname().

par agité » 07 nov. 2007, 13:15

Perdu ma session entre temps :oops:

EDIT : avec cette exemple non plus pas de reponses :

Code : Tout sélectionner

onClick="check(this.form.element['list[]'])"

Cocher une liste de checkbox.

par Invité » 07 nov. 2007, 13:14

Bonjour,

j'ai recuperer un script sur internet qui me permet de cocher toute les cases a cocher :

Code : Tout sélectionner

<!-- Begin var checkflag = "false"; function check(field) { if (checkflag == "false") { for (i = 0; i < field.length; i++) { field[i].checked = true;} checkflag = "true"; return "Tout décocher"; } else { for (i = 0; i < field.length; i++) { field[i].checked = false; } checkflag = "false"; return "Tout cocher"; } } // End -->
Et j'utilise le code html suivant pour le formulaire :

Code : Tout sélectionner

<form name="form"> while($data = mysql_fetch_array($res)) { ?> <input type="checkbox" name="list[]" id="list" value="<?php echo $data['titi]; ?>"><a href=\"../_medias/doc/programme/<?php echo $data['tata']; ?>"><?php echo $data['toto']; ?></a><br /> <?php } ?>
Pour valider le formulaire :

Code : Tout sélectionner

<input type="button" value="Tout cocher" onClick="check(getElementByName('list[]'))">[/quote]
Une fois que le formulaire est envoyer avec le nom list[] et qu'il est recuperer par le getElementByName il devrait cocher toute les cases avec javascript.

Ca ne fonctionne que si je retire les [] pour faire mon tableau, ce qui est genant par la suite, pour traiter les données avec php.

Après pas mal de lectures sur les forum je reste un peu bloqué la dessus, j'ai retrouver des gens qui ont eut le même soucis ici :

http://www.developpez.net/forums/showthread.php?t=26897

(un lien sur le forum de DV patapay plz)

il semble que pour lui le code fonctionne mais je n'ai toujours pas les cases qui se cochent.

Une idée ?