begin process at 2012 05 29 04:47:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Déclarer un tableau ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Déclarer un tableau ?

jeudi 11 octobre 2007 à 11:51:30 | Déclarer un tableau ?

jdeheyn

Bonjour,
J'utilise un script trouvé sur ce site pour vérifier en JavaScript si des cases sont cochées dans un formulaire (http://www.javascriptfr.com/codes/CONTROLER-NOMBRE-CHECKBOX-CLIQUEES_22913.aspx).
Ce formulaire est généré automatiquement par un script PHP.
Si dans ce formulaire j'ai plusieurs cases à cocher, le script fonctionne correctement.
Par contre, si je n'ai qu'une seule case à cocher, lorsque je la coche, j'ai ce message d'erreur :

'document.form.list_check[...].checked' a la valeur Null ou n'est pas un objet.

et le script ne semble pas détecter que j'ai cocher la case.
Je ne comprends pas ce qui génère cette erreur.
Voici le contenu de ma page :

<HTML>


<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<TITLE></TITLE>
<script language="javascript">
<!--
//nb max de choix possible
varnbre_max=1;
varnbre=0;
varstr='';
varurl=newArray(nbre_max+1);
functioncheckbox(num){
if((document.form.list_check[num].checked)==true){
nbre
++;
document
.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#00FF00><TR><TD>Tu as coch? '+nbre+' cases.</TD></TR></TABLE>';
}
else {
nbre
--;
document
.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#00FF00><TR><TD>Tu as coch? '+nbre+' cases.</TD></TR></TABLE>';
}
if(nbre>nbre_max){
document
.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#FF0000><TR><TD>Tu as coch? '+nbre+' cases.<BR>Si tu valides maintenant rien ne sera comptabilis?.</TD></TR></TABLE>';
}
if(nbre==1){
document
.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#00FF00><TR><TD>Tu as coch? 1 case.</TD></TR></TABLE>';
}
if(nbre==0){
document
.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#FF0000><TR><TD>Tu n\'as pas encore coch? de case.<BR>Si tu valides maintenant rien sera comptabilis?.</TD></TR></TABLE>';
}
}
functionverif(){
for(y=0;y<document.form.list_check.length;y++){
if(document.form.list_check[y].checked==true){
str
=str+"&a[]="+y;
}
}
str
=str.substring(1,str.length);
document
.form.action="etape_suivante.php?"+str;
document
.form.submit();
}
//-->
</script>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000FF" ALINK="#FF0000" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">

Choix :<P>
S?lectionner 1 case dans la liste ci-dessous, puis cliquer sur 'suivant' :<P>

<FORM METHOD="POST" NAME="form" onsubmit="returnfalse">
<TABLE BORDER=0 ALIGN=CENTER CELLPADDING=1 CELLSPACING=2 SUMMARY="">
<TR name="ligne">
<TD ALIGN=left VALIGN=middle NOWRAP>Case 1</TD>
<TD ALIGN=center VALIGN=middle NOWRAP><INPUT TYPE="checkbox" NAME="list_check" VALUE="1" OnClick="checkbox(0)"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" VALUE=" suivant " OnClick="verif()">
</FORM>

<DIV NAME="cadre_infos" ID="cadre_infos"><TABLE BORDER=0 BGCOLOR=#FF0000><TR><TD>Tu n'as pas encore coch? de case.<BR>Si tu valides maintenant rien ne sera comptabilis?.</TD></TR></TABLE></DIV>

</BODY>
</HTML>


Y aurait-il une variable à déclarer ou initialiser ?

Merci d'avance pour vos infos et remarques.
Cordialement.
Jérôme

jeudi 11 octobre 2007 à 12:34:20 | Re : Déclarer un tableau ?

bultez

Membre Club
Réponse acceptée !


Bonjour,

    document.form.list_check[num] n'est permis que s'il y a plusieurs checkbox.

    tester ?
        var tmp=document.frm.list_check.length;
        if (tmp) alert("plusieurs"); else alert("un seul");

       si un seul ne tester que
document.form.list_check.checked
       s'il y en a plusieurs on peut "boucler"

       peut-être serait-il plus simple de générer un "checkbox
          bidon", qu'on ne testerait pas, pour qu'il y en est toujours plusieurs



                Cordialement            Bul         [mon Site]     [M'écrire]

jeudi 11 octobre 2007 à 15:47:03 | Re : Déclarer un tableau ?

jdeheyn

J'ai pris la solution du 'checkbox bidon' cachée.
Mon nouveau code devient donc :

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<TITLE></TITLE>
<script language="javascript">
<!--
//nb max de choix possible
varnbre_max=1;
varnbre=0;
varstr='';
varurl=newArray(nbre_max+1);
functioncheckbox(num){
if((document.form.list_check[num].checked)==true){
nbre++;
document.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#00FF00><TR><TD>Tu as coché '+nbre+' cases.</TD></TR></TABLE>';
} else {
nbre--;
document.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#00FF00><TR><TD>Tu as coché '+nbre+' cases.</TD></TR></TABLE>';
}
if(nbre>nbre_max){
document.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#FF0000><TR><TD>Tu as coché '+nbre+' cases.<BR>Si tu valides maintenant rien ne sera comptabilisé.</TD></TR></TABLE>';
}
if(nbre==1){
document.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#00FF00><TR><TD>Tu as coché 1 case.</TD></TR></TABLE>';
}
if(nbre==0){
document.getElementById('cadre_infos').innerHTML='<TABLE BORDER=0 BGCOLOR=#FF0000><TR><TD>Tu n\'as pas encore coché de case.<BR>Si tu valides maintenant rien sera comptabilisé.</TD></TR></TABLE>';
}
}
functionverif(){
for(y=0;y<document.form.list_check.length;y++){
if(document.form.list_check[y].checked==true){
str=str+"&a[]="+y;
}
}
str=str.substring(1,str.length);
document.form.action="etape_suivante.php?"+str;
document.form.submit();
}
//-->
</script>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000FF" ALINK="#FF0000" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">

Choix :<P>
Sélectionner 1 case dans la liste ci-dessous, puis cliquer sur 'suivant' :<P>

<FORM METHOD="POST" NAME="form" onsubmit="returnfalse"><INPUT TYPE="hidden" NAME="list_check" VALUE="" OnClick="checkbox(0)">
<TABLE BORDER=0 ALIGN=CENTER CELLPADDING=1 CELLSPACING=2 SUMMARY="">
<TR name="ligne">
<TD ALIGN=left VALIGN=middle NOWRAP>Case 1</TD>
<TD ALIGN=center VALIGN=middle NOWRAP><INPUT TYPE="checkbox" NAME="list_check" VALUE="1" OnClick="checkbox(0)"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" VALUE=" suivant " OnClick="verif()">
</FORM>

<DIV NAME="cadre_infos" ID="cadre_infos"><TABLE BORDER=0 BGCOLOR=#FF0000><TR><TD>Tu n'as pas encore coché de case.<BR>Si tu valides maintenant rien ne sera comptabilisé.</TD></TR></TABLE></DIV>

</BODY>
</HTML>

jeudi 11 octobre 2007 à 16:05:06 | Re : Déclarer un tableau ?

bultez

Membre Club
>>j'ai pris la solution du 'checkbox bidon' cachée.
j'aurais probablement fait la même chose...
    en attendant une solution meilleure ?   ;o))

                Cordialement            Bul         [mon Site]     [M'écrire]

vendredi 12 octobre 2007 à 18:35:36 | Re : Déclarer un tableau ?

PetoleTeam

Membre Club

Bonjour,

Un approche serait de parcourir les éléments de la FORM à la recherche des INPUTs, dans ce cas tu auras un tableau d'objet, ensuite tu parcours et si  type == "CHECKBOX" alors tu peux tester.

je sentirais bien un truc du style
function checkbox(num){
nbre =0;
var T_Input = document.form.getElementsByTagName('INPUT')
for( var i=0; i< T_Input.length; i++)
  if( T_Input[i].type == "checkbox")
    if( T_Input[i].checked)
      nbre++;
// puis la suite...


;0)

samedi 13 octobre 2007 à 09:30:57 | Re : Déclarer un tableau ?

bultez

Membre Club

ou de mettre un ID,  
    <input type="checkbox" id="
list_check0"...>
    <input type="checkbox" id=" list_check1"...>
    ...
et de jouer avec :
    n=0;
    while ( document.getElementById("list_check"+n) )
    {   traitement...
         n++;
    }

il doit bien y avoir d'autres possibilités !


                Cordialement            Bul         [mon Site]     [M'écrire]



Cette discussion est classée dans : form, case, infos, document, nbre


Répondre à ce message

Sujets en rapport avec ce message

case a cocher et disabled [ par jackrichard ] bonjours a tous je n'ai quasiment aucune compétence en javascript donc ce code est peut etre conplétement faux. Ce que j'aimerais c'est que si ma case form ????? [ par lu6fer ] bonjour, j'ai un petit probleme avec un form, je voudrai que lors du passage de la souris sur l'image reactive, un nom soir automatiquement ecrit dans nom de champ de formulaire dynamique [ par patou06 ] Bonjour à tous, j'ai une liste de champs de formulaire dynamique: et dans une fonction javascript je veux les parcourir, j'avais penser à : document if ...else avec netscape [ par Poulipe ] Bonjour,je ne comprend pas pourquoi ca :function Cbagbonclick(){ - if(document.form1.Cbagb.checked){ ou - if(document.form1.Cbagb.check envoi d'un form [ par laurent98 ] comment changerla propriete "action" d'un formje fais :function accept() { document.form.action.value="./valid2.php?a=accept"; document.form.submit(); checkbox !! [ par Arkane ] bjr !! je suis pas tres avancé en javascript !!j'aimerasi qu'on me disent comment faire pour mettre disable un tableau de checkboxj'ai des checkbox 'm Problème sous IE avec document.activeElement [ par ronflex38 ] Salut, J'utilise dans une page la fonction document.activeElement qui, je viens de le découvrir, ne marche pas avec Mozilla. Mais je me suis aussi ap Bouton radio et bloquer la saisie [ par stamdan ] Bonjour à tous et à toutes,voilà je dois développer une page html pour mon taf. Cette page est découpée en trois partie,ces trois parties déterminent Comment cacher un champ (pas juste le desactiver) [ par broke06 ] Bonjour, Je voudrais afficher ou non un champ texte (pas le desactiver mais reelement le cacher) selon des checkbox. En cherchant sur le site j'ai tr Probleme avec un selectionEnd [ par death83 ] Salut a tous. Je vous explique vite fait mon problème. Il s’agit d’une fonction javascript pour un éditeur de texte. Pour le moment j’utilisait une fo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales