Probleme de boucle for (avec 1 element) [Résolu]

Signaler
Messages postés
7
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
30 décembre 2008
-
Messages postés
7
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
30 décembre 2008
-
Bonjour à tous,

J'ai un petit problème de boucle "for", la voici:

for ( var n=0;n<=document.ResultForm.cellule.length; n++ )
    {    if ( document.ResultForm.cellule[n].checked )
        {    alert('le champ '+n+' sélectionné a pour id : '+document.ResultForm.cellule[n].id );
}}

Pour la replacer dans son contexte, elle me permet de sélectionner des informations affichées d'une table Mysql. Cette boucle fonctionne très bien quand il y a plus de 2 lignes dans le tableau, mais elle ne fonctionne pas si ma requête me donne 1 seule ligne.

Merci par avance pour votre aide et dans tous les cas bonne fêtes de fin d'années.

PS: voici le résultat HTML

<script language="JavaScript">

function f()
{
var tab = document.getElementById('tableau');
var tableSize = tab.rows.length-1;
var colonne = tab.rows[0].cells.length;
var n=0;

for ( var n=0;n<=document.ResultForm.cellule.length; n++ )
{ if ( document.ResultForm.cellule[n].checked )
{ alert('le champ '+n+' sélectionné a pour id : '+document.ResultForm.cellule[n].id );
break;
}
}
}

</script>

nombres d'enregistrement : 1<br><br><tableid="tableau" align="center">
<tr><td>code</td><td>ref</td></tr>

<tr><td><input type="radio" id="7267" name="cellule" onclick="f()">7267</td><td>00000111W3</td></tr>
</table>
<br>

2 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
bonjour,

>>fonctionne très bien quand il y a plus de 2 lignes dans le tableau,
>>mais elle ne fonctionne pas si ma requête me donne 1 seule ligne
s'il y a une seule ligne, document.ResultForm.cellule
n'est plus un Array, et utiliser document.ResultForm.cellule[n]
n'est pas possible.

si document.ResultForm.cellule.length n'existe pas
on utilise document.ResultForm.cellule, et si ça existe
on peut utiliser document.ResultForm.cellule[index]
perso, je préfère [ o;) ], générer un "poste bidon"
( le 0 ) et commencer ma boucle à 1.

et le cas où aucune ligne n'est générée ? c'est possible ?

Cordialement.
Messages postés
7
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
30 décembre 2008

Merci beaucoup,

J'utiliserai donc ta méthode en générant un poste bidon, effectivement ça marche très bien.

Pour répondre a ta question, si aucune ligne n'est générée, la requête me retourne un message d'erreur donc pas de problème de sélection de bouton radio.

Merci.