CONTROLER LE NOMBRE DE CHECKBOX CLIQUEES

Mingain Messages postés 44 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 février 2006 - 24 févr. 2006 à 21:39
kiadimoundi Messages postés 4 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 30 décembre 2008 - 5 mai 2008 à 09:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22913-controler-le-nombre-de-checkbox-cliquees

kiadimoundi Messages postés 4 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 30 décembre 2008
5 mai 2008 à 09:15
bon, il est 9h12, j'ai peut être pas les yeux en face des trous, mais ton code me parait bizarre, surtout lors de la récupération des variables, je m'explique :
<form name="form" method="POST">
....
$passage=$_GET['check'];
-->>> ca serait pas plutot $passage=$_POST['check']; ou alors <form name="form" method="GET"> ?????

ensuite dans le $_GET["..."], tu appelles une variable check, elle vient d'où ??? tu voulais plutot dire list_check ?

Au dela de ces deux détails, le code est très intéressant !!!:-D :-D
jdeheyn Messages postés 23 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 14 janvier 2010
11 oct. 2007 à 18:19
Yes MONSIEURZOUZOU, ton code est plus simple à comprendre, mais je trouve qu'il ne va pas trop bien pour la création "dynamique" de formulaires, en PHP. Le fait de devoir utiliser des champs avec des noms "spécifiques" : r1, r2, r3, ... Je savais pas trop comment les traiter. Or avec le code de Samiby, on récupère les valeurs dans un tableau, ce que je trouve plus facile à manipuler ensuite en PHP.
monsieurzouzou Messages postés 14 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 17 mai 2007
11 oct. 2007 à 18:07
et désolé pour la faute de frappe: cpde = code si un modo passe par là, ça serait bien de rectifier parce que c'est très vilain :) ça m'apprendra à faire genre je sais taper
monsieurzouzou Messages postés 14 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 17 mai 2007
11 oct. 2007 à 17:54
euh le cpde que j'ai collé (honteusement pompé je le rappelle) est quand même un peu plus simple...
jdeheyn Messages postés 23 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 14 janvier 2010
11 oct. 2007 à 16:04
J'ai trouvé une parade (merci bultez) pour cette erreur "'documen.form.list_check[...].checked' a la valeur Null ou n'est pas un objet."

En fait elle ne se pose que lorsqu'il n'y a qu'une case à cocher. Dans ce cas l'utilisation de 'document.form.list_check[num]' n'est pas possible.
Il suffit alors d'ajouter une "case invisible". Dans mon cas j'ai rajouté un champ de formulaire invisible : .

Donc le nouveau code de Samiby devient :

<script language="javascript">
<!--
//nb max de choix possible
var nbre_max=3;
var nbre=0;
var url = new Array(nbre_max+1);
function checkbox(num){
if((document.form.list_check[num].checked)==true){
nbre++;
} else {
nbre--;
}
if(nbre > nbre_max){
alert('Pas plus de 3 ateliers !');
document.form.list_check[num].checked=false;
nbre--;
}
}
function verif(){
if(nbre==0) {
alert('Choisis un checkbox !');
document.form.list_check[0].focus();
} else {
for(y=0; y<document.form.list_check.length; y++){
if(document.form.list_check[y].checked == true){
str = str + "&check[]=" + y;
}
}
str=str.substring(1,str.length);
document.form.action = "action.php?" + str;
document.form.submit();
}
}
//-->
</script>
<!-- ... //-->
<form name="form" method="POST">

1er choix
2eme choix
3eme choix
4eme choix
<!-- ... //-->
</form>
//pour récupérer les données (action.php):
<?php
$array=array('1er choix','2eme choix','3eme choix','4eme choix','...');
$passage=$_GET['check'];
for($i=0;$i<count($check);$i++){
$check[$i]=$array[$passage[$i]];
}
?>
jdeheyn Messages postés 23 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 14 janvier 2010
9 oct. 2007 à 16:01
Je me suis mal exprimé dans mon commentaire précédent ...
En fait l'erreur se produit si je n'ai qu'une seule case possible à cocher. Dans ce cas là, lorsque je coche la case j'ai cette erreur "'documen.form.list_check[...].checked' a la valeur Null ou n'est pas un objet."

Mais peut-être que mon idée de déclarer 'documen.form.list_check' comme étant un tableau pourrait résoudre le problème ...?
jdeheyn Messages postés 23 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 14 janvier 2010
9 oct. 2007 à 15:56
Bonjour,
J'ai la même erreur que Mingain lorsque j'utilise ce script et que je ne coche qu'une seule case.
Je pense qu'il faudrait déclarer 'document.form.list_check' comme étant un tableau, mais néophyte dans le JavaScript, je ne sais pas trop comment faire ...
lucky10g Messages postés 8 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 octobre 2008
6 oct. 2007 à 20:42
Salut !
Monzieurzouzou ton script marche parfaitement
Maintenant quelqu'un peut me dire comment recevoir les variables ?
Merci a+
monsieurzouzou Messages postés 14 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 17 mai 2007
31 oct. 2006 à 17:33
bon ben finalement j'en ai trouvé un autre sur http://www.js-examples.com/, qui marche (énorme merci à eux :); la saisie est ici limitée à 2 checkbox:

<script type="text/javascript" language="JavaScript">
var MAX_ALLOWED=2;
var clickedData=new Array(false,false,false,false);
function itemsClicked(){var i=0;for(var j=0;j<clickedData.length;j++)i+=clickedData[j]?1:0;return(i);}
function itemClicked(_v)
{
var ALLOW_THIS=true;
var x=itemsClicked();
if (x>=MAX_ALLOWED && !clickedData[_v])
{
ALLOW_THIS=false;
}
else
{
clickedData[_v]=clickedData[_v]?false:true;
eval("document.formulaire.r"+_v+".clicked=false;");
}
return (ALLOW_THIS); /* kill the event handler */

}
</script>
</head>


<form name="formulaire">
Case 1
Case 2
Case 3
Case 4
</form>
monsieurzouzou Messages postés 14 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 17 mai 2007
31 oct. 2006 à 16:06
bonjour,

meme erreur que Mingain: "'document.form.list_check[...].checked' a la valeur Null ou n'est pas un objet."

snif en plus c'est le seul script du net qui correspond à ce que veux exactement...j'ai plus qu'à apprendre le javascript, ouinnnnnnnnn j'en ai pour des mois...
kangun Messages postés 22 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 11 avril 2010
14 juin 2006 à 15:55
merci bien pour ce petit script, il m'a en quelque sorte sauvé ;-)
Mingain Messages postés 44 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 février 2006
24 févr. 2006 à 21:39
Bonjour,

le code me renvoie l'erreur "'documen.form.list_check[...].checked' a la valeur Null ou n'est pas un objet."

Comment faire ?

A bientôt ;-)
Rejoignez-nous