Page 1 sur 1

checkbox et javascript

Posté : 18 oct. 2007, 07:32
par damaskinos
Bonjour et merci d'avance pour vos reponses.

J'ai un fichier html avec des checkbox qui s'affiche de manière dynamique. Donc dès fois je peux avoir un checkbox ou plusieurs ou rien du tout.

Mon probleme:

Quand j'ai plus d'un checkbox, du côté javascript, ce code

Code : Tout sélectionner

document.Maform.lecheckbox.length
me reourne le bon nombre de checkbox mais dès qu'il y a un seul checkbox, ce code marche plus. il me retourne
undefined
Comment faire pour savoir combien de checkbox j'ai peu importe le nombre?

Merci encore

Posté : 18 oct. 2007, 07:53
par d0m
tu peux poster le code de création de checkbox stp?

Posté : 18 oct. 2007, 08:05
par damaskinos
je crois pas que le code aide beaucoup mais bon je joinds le bout de code. Quand il y a un checkbox la commande javascript marche pas et quand il y a deux et plus ca marche.

Code : Tout sélectionner

<tbody> <?php $num = count($tab); // echo $num; for($i=0;$i<$num;$i++) { // $info = explode(":",$tab[$i]); $tabinf = $me->trouverInfoMembre($con,"numP",$info[0]); for($j=0;$j<count($tabinf);$j++) { $tabinfo = explode(":",$tabinf[$j]); list($aaaa,$mm,$jj) = split("-",$info[2]); if($mm[0]==0) $mm = substr($mm,1); $mm = date_francais($mm); //echo "<br>".$j." ".$info[0]; ?> <tr> <td bgcolor="#DDE0E3" class="txt_normal_gris"><label> <input type="checkbox" name="compte" value="<?php echo $info[0];?>"> </label></td> <td bgcolor="#DDE0E3" class="txt_normal_gris"><?php echo $tabinfo[1]." ".$tabinfo[2];?></td> <td bgcolor="#DDE0E3" class="txt_normal_gris"><?php echo $info[1];?></td> <td bgcolor="#DDE0E3" class="txt_normal_gris"><?php echo $info[4];?></td> <td bgcolor="#DDE0E3" class="txt_normal_gris"><?php echo $info[0];?> </td> <td bgcolor="#DDE0E3" class="txt_normal_gris"><label> <strong><?php echo $info[3];?></strong> $</label></td> </tr> <?php } }?> </tbody>
Donc si je fais

Code : Tout sélectionner

document.form1.compte.length
si j'ai deux checkbox compte, la commande me donne 2. Mais dès qu'il y a un checbox compte, j'ai un undefined.

merci encore

Posté : 18 oct. 2007, 08:27
par d0m
ok alors à savoir qu'une checkbox n'a pas d'attribut length.
Par contre en mettant 2 ou + éléments avec le même nom dans un formulaire, le nom devient un ensemble d'élements qui lui a un attribut length.

Tu peux soit définir les noms autrement (avec un compteur par exemple),
soit tu peux garder cette définition et dans ton code javascript faire 2 cas :

Code : Tout sélectionner

if(document.form1.compte.length){ //length existe donc + d'1 checkbox } else{ //length n'existe pas donc 1 seul checkbox }

Posté : 18 oct. 2007, 08:37
par Tracker
Salut,

Essai plutot

Code : Tout sélectionner

<input type="checkbox" name="compte[]" value="<?php echo $info[0];?>">
Le navigateur, "crée un tableau de valeurs" si plusieurs inputs ont le même nom. Et c'est ce que tu cherches. Suffit juste de lui demande de faire la manip à chaque fois en nommant le champ compte[]


Tracker.

Posté : 18 oct. 2007, 17:12
par damaskinos
merci bcp tout marche bien.