Vérification nombre checkbox

Résolu
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009
- 19 févr. 2009 à 10:05
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009
- 19 févr. 2009 à 15:48
Bonjour, voila j'ai une page à faire avec le choix de 5 objets à faire sur une totalité de 15.
J'ai donc affiché les 15 objets en donnant le nom checkbox suivants:
objet1, objet2, objet3....

J'aimerai en fait que lorsque l'on valide le formulaire, il compte le nombre d'objets s'électionnés et que si il y en a plus de 5 il affiche une fenêtre d'alerte.

j'ai commence par un :
function verif() {
  for(i=0; i<=15; i++) {

  }
}

mais apres je ne sais pas trop quoi faire

25 réponses

Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 15:30
ah oui... j'ai oublié de préciser cela
effectivement coté php, ça peut géner !

if(document.getElementById(box[j]).checked) {
ça ne peut pas fonctionner, un ID doit être unique sur une page
mettre un id progressif ça irait pour le javascript mais pas pour le php

il faut mettre un name avec des crochets !
<form name="frm"....
        <input type="checkbox" name="chk[]" ....
        <input type="checkbox" name="chk[]" ....

        <input type="checkbox" name="chk[]" ....

...

coté javascript on utilise document.frm["chk[]"].length et document.frm["chk[]"][index]
et coté php, $_POST["chk"] est un array.
3
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 10:06
gniii désolé pour la forme du message ce n'ai pas trop visible...
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 11:15
bonjour,
met le même name
et teste document.name_du_formulaire_name_des_checkbox[index].checked
dans ta boucle
Cordialement[mon Site][M'écrire]Bul
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 11:35
C'est à dire:
function verif() { 
  for(i=0; i<=15; i++) { 
    if(document.form.objet[i].checked <5) {
      alert("message!");
  } 
} 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 11:37
humm pourquoi le message ne prend pas en compte les retour à la ligne avec entrée??
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 11:44
_ checked c'est l'état du checkbox, coché ou pas
donc tester par rapport à 5 n'a aucun sens
il faut d'abord compter ceux cochés ( ou les autres )

_ perso j'évite d'utiliser des noms connus du html/javascript....
   un jour ou l'autre ç te posera des problèmes ( form par exemple )

_ >>le message ne prend pas en compte les retour à la ligne avec entrée?
pas de souci si tu tapes directement ou si tu copies/colles depuis
un éditeur de textes normal, pas depuis je ne sais quel outil

[mon Site][M'écrire]Bul
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 11:49
>>ok pour le retour à la ligne

>>Ne t'inquiete pas j'ai mis form pour le message du forum,
j'utilise bien des nom differents dans mn code.

Exist il une fonction qui permet de compter en javascript ou comment proceder??
ex:
if(count(document.form.objet[i].checked)<5)
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 11:50
bon ben ca ne veut toujours pas faire de retour à la ligne bizarre
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 11:52
>>Exist il une fonction qui permet de compter
toto=toto+1;
ou toto++;
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 11:56
>>bon ben ca ne veut toujours pas faire de retour à la ligne bizarre
tu tapes directement ou tu fais un copié/collé
et dans ce cas, depuis quel logiciel ?

tu initialises une variable à 0
tu boucles sur les checkbox
si elle est cochée, tu fais +1 dans la variable
en fin de boucle, variable contient le nombre de checkbox cochées
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 11:57
ok oui desole...
donc dis moi si c'est juste:
function verif() {
  var i=0; 
  while(document.form.objet[i].checked) {
    i++;
    if(i <5) {
      alert("message!"); 
    } 
  }
}
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 12:01
petite correction:
function verif() { 
  var i=0;
  for(j=0; j<15; j++) {  
    while(document.voter.objet[j].checked) { 
      i++; 
  if(i <5) { 
    alert("message!"); 
  } 
    }
  }	
}
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 12:05
Pour le retour a la ligne j'ai essayer les 2.
j'utilise notepad++ pour coder.
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 12:15
while(document.voter.objet[j].checked ???
ça veut dire tant que le checkbox est cochée !
donc s'il l'est : boucle infernale : rien ne permet de sortit du while
sinon, bah....

fait d'abord ton algorithme en français, puis traduit en javascript.
( donc pas "tant que" mais "si" )
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 12:20
J'avais pensé à :
tant qu'il y a une checkbox coche {
i++
}

dans se cas il va voir par exemple qu'il y a 2 checkbox coche et pas les autre non?
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 12:20
>>Pour le retour a la ligne
tu es avec quel navigateur ?
opera, chrome, safari : passer par la "textbox" classique
( ou alors taper les balises html nécessaires
pour retour à la ligne ! )
Firefox : <tab> mal géré, le reste est ok
IE, tout devrait baigner.
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 12:24
ha ok je suis sous chrome donc ca..
bon à savoir
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 12:24
tant qu'il y a ?
pourquoi ne pas faire si le checkbox est coché,
puisque tu les regardes tous ces checkbox
0
cs_bibo06
Messages postés
116
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
10 mars 2009

19 févr. 2009 à 12:30
oui c'est vrai comme on est dans un for.

je refait lol


function verif() { 

  var i=0;

  for(j=0; j<15; j++) {
  
    if(document.voter.objet[j].checked) {
 
      i++;
 
      alert(i);

    }

  }

  if(i <5) {
 
alert("message!");
 
return false;

  }
 
return true;
  
}



Donc ici, on verifie avec if si il y a des checkbox cochées.

Si il y en a on rajoute +1 à i.

apres on regarde à combien est i si i lest inferieur à 5 on mets un message d'alert
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
19 févr. 2009 à 12:51
ça doit baigner...
j'aurais mis :
for(j=0; j<document.voter.objet.length; j++) {
comme ça, la boucle sera toujours valable
même si le nombre de checkbox évolue.
@+
0