Mingain
Messages postés44Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 février 2006
-
24 févr. 2006 à 21:39
kiadimoundi
Messages postés4Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention30 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.
kiadimoundi
Messages postés4Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention30 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és23Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention14 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és14Date d'inscriptionjeudi 10 mars 2005StatutMembreDernière intervention17 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és14Date d'inscriptionjeudi 10 mars 2005StatutMembreDernière intervention17 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és23Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention14 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">
jdeheyn
Messages postés23Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention14 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és23Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention14 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és8Date d'inscriptiondimanche 21 janvier 2007StatutMembreDernière intervention17 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és14Date d'inscriptionjeudi 10 mars 2005StatutMembreDernière intervention17 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és14Date d'inscriptionjeudi 10 mars 2005StatutMembreDernière intervention17 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és22Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention11 avril 2010 14 juin 2006 à 15:55
merci bien pour ce petit script, il m'a en quelque sorte sauvé ;-)
Mingain
Messages postés44Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 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."
5 mai 2008 à 09:15
<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
11 oct. 2007 à 18:19
11 oct. 2007 à 18:07
11 oct. 2007 à 17:54
11 oct. 2007 à 16:04
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]];
}
?>
9 oct. 2007 à 16:01
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 ...?
9 oct. 2007 à 15:56
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 ...
6 oct. 2007 à 20:42
Monzieurzouzou ton script marche parfaitement
Maintenant quelqu'un peut me dire comment recevoir les variables ?
Merci a+
31 oct. 2006 à 17:33
<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>
31 oct. 2006 à 16:06
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...
14 juin 2006 à 15:55
24 févr. 2006 à 21:39
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 ;-)