Pb de vérification de checkbox

Pb de vérification de checkbox - HTML/CSS - Programmation

Marsh Posté le 19-05-2005 à 09:49:02    

Bonjour,
 
Je fais de nouveau appel à vos services car j'ai un problème lorsque je veux controler qu'au moins un checkbox est coché.
Cette vérificaion n'a pas lieu
En plus il ne va même pas sur la page suivante
Il reste figé et aucun message d'erreur n'apparait
 
Mon second problème réside dans le fait que lorsque je clique sur le lien "cocher toutes les cases" aucunes cases ne se cochent
 
D'avance je vous remercie pour votre précieuse aide.
 
MERCI
 
 
<HTML>
<HEAD>
 
<script language="JavaScript">
 //vérification formulaire
function verifier() {  
 missinginfo = "";
 
 var isChecked = false;
 var checkbox = document.monform.elements["nomtemp"];
 
 for (var i=0; i<checkbox.length; i++) {
  if (checkbox[i].checked == true) {
   isChecked = true;
   break;
  }
 }
 if (isChecked == false) {
  missinginfo += "\n  - Cliquer au moins sur une occurrence.";
 }
 
if (missinginfo != "" ) {
  missinginfo ="Vous n'avez pas correctement rempli les champs suivants: \n Merci de les rentrer à nouveau !";
  alert(missinginfo);
 return false;
 }
 else return true;
}
 
function envoyer(what) {
 if (verifier()){
  document.verif.action="page2.php";
  document.verif.submit();
 }  
}
//fin
 
function CocherDecocher() {
    for ( n=0;n<verif.elements.length;n++){
        if (verif.elements[n].type=="checkbox" ){
            if (verif.elements[n].checked=="false" ){
                verif.elements[n].checked="true";
                verif.ahref.value="Décocher toutes les cases";
            }
            else {
                verif.elements[n].checked="false";
                verif.ahref.value="Cocher toutes les cases";
            }
         }
     }
 }
 
</script>
</HEAD>
<BODY>
<TABLE VALIGN=top ALIGN=center WIDTH=400>
<TR>
 <TD>&nbsp;</TD>
</TR>
<TR>
 <TD VALIGN=top ALIGN=center>
 <?
 echo"<form method='post' name='verif'>";
  echo"<U>Cases à cocher&nbsp;:</U>&nbsp;&nbsp;<BR><INPUT TYPE='checkbox' NAME='nomtemp' VALUE='nom1'>Nom1&nbsp;&nbsp;<BR><INPUT TYPE='checkbox' NAME='nomtemp' VALUE='nom2'>Nom 2&nbsp;&nbsp;<BR><INPUT TYPE='checkbox' NAME='nomtemp' VALUE='nom3'>Nom 3&nbsp;&nbsp;<BR><INPUT TYPE='checkbox' NAME='nomtemp' VALUE='nom4'>Nom4&nbsp;&nbsp;<BR><INPUT TYPE='checkbox' NAME='nomtemp' VALUE='nom5'>Nom 5&nbsp;&nbsp;<BR><INPUT TYPE='checkbox' NAME='nomtemp' VALUE='nom6'>Nom 6&nbsp;&nbsp;<BR></TD>";
 echo"</form>";
 ?>
 </TD>
</TR>
<TR>
 <TD><A href="javascript:;" onClick="CocherDecocher();">Cocher toutes les cases</A></TD>
</TR>
</TABLE>
 </BODY>
</HTML>

Reply

Marsh Posté le 19-05-2005 à 09:49:02   

Reply

Marsh Posté le 19-05-2005 à 10:00:00    

Bonjour,
 
à l'expression :

Code :
  1. document.monform.elements["nomtemp"];


je lui préfère "getElementsByName" utilié comme ceci :

Code :
  1. for( i=0; i<document.getElementsByName( 'nomtemp').length; i++)
  2.     test = document.getElementsByName( 'nomtemp').item(i).value;


Ensuite savoir si ça vient de là ... ?

Reply

Marsh Posté le 19-05-2005 à 11:22:41    

robbyone a écrit :

Bonjour,
 
à l'expression :

Code :
  1. document.monform.elements["nomtemp"];


je lui préfère "getElementsByName" utilié comme ceci :

Code :
  1. for( i=0; i<document.getElementsByName( 'nomtemp').length; i++)
  2.     test = document.getElementsByName( 'nomtemp').item(i).value;


Ensuite savoir si ça vient de là ... ?


 

Code :
  1. for (var opt in document.getElementsByName( 'nomtemp') ){
  2.       test = opt.value;
  3. }


c'est mm mieux (c'est un exemple de synthaxe, j'garantie pas que ca marche, j'ai pas testé :p)

Reply

Marsh Posté le 19-05-2005 à 12:48:02    

sous quel navigateur t'as le pb?
 
Car sous IE, j'avais un javascript dans ce genre et ça amrchait niclek sous IE et Firefox (il me semble), mais pas sous Netscape.

Reply

Marsh Posté le 19-05-2005 à 12:49:39    

apparemment, ça pourrait venir du fait que les checkvox ayant le même nom donnent lieu à un tableau => nomchkbox.length donne un nb > 0. Or, sous Netscape, ça me donnait une erreur ou 0, je ne sais plus...

Reply

Marsh Posté le 19-05-2005 à 14:28:03    

rufo a écrit :

apparemment, ça pourrait venir du fait que les checkvox ayant le même nom donnent lieu à un tableau => nomchkbox.length donne un nb > 0. Or, sous Netscape, ça me donnait une erreur ou 0, je ne sais plus...


 
Tu peux leur donner des id et y acceder via ce moyen.

Reply

Marsh Posté le 19-05-2005 à 16:29:16    

cerel a écrit :

Tu peux leur donner des id et y acceder via ce moyen.


 
c'est à peu près ce que j'ai fait.
Je me suis fait une boucle qui récupère tous les noms des éléments de mon formulaire.
Si le nom vaut "Nom_de_mon_checkbox", alors c'est un checkbox et je travaille dessus.

Reply

Marsh Posté le 21-05-2005 à 10:51:53    

merci beaucoup pour votre aide
par contre une question se pose now : comment récupérer mes valeurs attribuées aux checkbox (en PHP) et qui portent toutes ici le même nom ?
 
d'avance merci

Reply

Marsh Posté le 27-05-2005 à 11:25:49    

elles se récupèrent grâce au tableau formé de toutes les checkbox et qui devrait s'appeler (dans ton cas): nomtemp[]. Tu peux le récupérer avec $_POST['nomtemp'], et tous ses éléments sont accessibles avec la syntaxe à crochets (nomtemp[0], nomtemp[1],...)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed