Probleme de boucle for (avec 1 element)

Résolu
akh550 Messages postés 7 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 30 décembre 2008 - 30 déc. 2008 à 15:17
akh550 Messages postés 7 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 30 décembre 2008 - 30 déc. 2008 à 16:25
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

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
30 déc. 2008 à 15:59
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.
3
akh550 Messages postés 7 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 30 décembre 2008
30 déc. 2008 à 16:25
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.
0
Rejoignez-nous