checkbox et javascript

Eléphant du PHP | 288 Messages

18 oct. 2007, 07:32

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

d0m
Mammouth du PHP | 1141 Messages

18 oct. 2007, 07:53

tu peux poster le code de création de checkbox stp?

Eléphant du PHP | 288 Messages

18 oct. 2007, 08:05

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

d0m
Mammouth du PHP | 1141 Messages

18 oct. 2007, 08:27

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 }

Eléphant du PHP | 443 Messages

18 oct. 2007, 08:37

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.

Eléphant du PHP | 288 Messages

18 oct. 2007, 17:12

merci bcp tout marche bien.