mon ptit for

Eléphanteau du PHP | 17 Messages

03 avr. 2009, 15:12

Salut a tous ptit pb sur un for alors je m'explique j'ai dans un java Script un for me permettant de décocher quelque checkbox mais mon for n'incrémente plus quand exemple 1,2,3,4,5,9 il stop a 5 pourquoi je pense le savoir comment remédier cela?

Code : Tout sélectionner

function deselection_tout_Prov() { for (i=1; i<=100; i++) { var un_checkbox = document.getElementById('cmbProvince'+i); un_checkbox.checked = false; } }
<input type="checkbox" '.(isset($_GET["cmbProvince".$i])?"checked='checked'":"").' name="cmbProvince'.$i.'" id="cmbProvince'.$i.'" value="'.$dept['id'].'" onClick="verifProv(this,'.$nb.');" checked/><label for="cmbProvince'.$i.'">'.$dept['nom'].' ('.$nombre_de_locations2.')(cmbProvince'.$i.')</label><br />'."\n";

Code : Tout sélectionner

(cmbProvince1) (cmbProvince2) (cmbProvince3) (cmbProvince4) (cmbProvince5) (cmbProvince6) (cmbProvince9) (cmbProvince10)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 avr. 2009, 16:04

Il s'arrête lorsqu'il tente d'accéder à un élément de ton formulaire qui n'existe pas... si tu as des case nommées cmbProvince 1,2,3,4,5,9 et que ta boucle for va de 1 à 100, lorsqu'elle passe par la valeur 6 pour essayer de cocher la case cmbProvince6, comme celle-ci n'existe pas , javascript te retourne une erreur et s'arrête.

Pour éviter cela, il te faut tester la présence de ton champ avant d'essayer de le décocher :
for (i=1; i<=100; i++) { 
  var un_checkbox = document.getElementById('cmbProvince'+i); 
  if (un_checkbox != null) {
    un_checkbox.checked = false; 
  }
} 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...