Pb document.GetElementById

jcex Messages postés 11 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 août 2009 - 9 juin 2008 à 15:42
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 9 juin 2008 à 18:08
bonjour à tous je galère sur cette erreur depuis kk temps maintenant après plusieurs tests, j'en arrive à la conclusion qu'il doit s'agir du formatage de la variable nom_string mais je n'ai pas trouvé comment faire marcher ce code. voici ce que je veux faire

                    var indice = document.forms[0].elements[i].id;
                                        
                    var nom_string = "nom"+indice;
                    
                    alert(nom_string);
                    
                    alert(document.getElementById(nom).innerHTML);

C'est la dernière ligne qui pose problème la variable nom_string est remplie comme je veux. J'ai fais le test suivant pour vérifier si j'avais bien une div ayant un tel identifiant
 
                    alert(document.getElementById("nom1").innerHTML);

Et cela fonctionne bien. Qqun voit -il l'erreur ?

12 réponses

cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
9 juin 2008 à 15:47
Salut

Dans getElementById c'est tu as mis nom... Ca ne devrait pas être nom_string?
Sinon peut-être .innerHTML.toString()
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 juin 2008 à 15:47
Bonjour,

    si on savait comment sont décrits les champs....
       ce serait plus simple....

    à priori....
       document.name_du_formulaire["name_des_champs"+indice].....
       mais va savoir... je tente de deviner là...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 juin 2008 à 15:49
tiens on est quasi d'accord avec ov3rdoze...
    ou alors document.getElementById("id_des_champs"+indice).....
    mais on tente toujours de deviner...
    et comme il y 265897 possibilités en fonction de comment ces champs
          sont décrits... montre nous, ce sera plus simple...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
9 juin 2008 à 15:51
C'est clair, c'était vraiment à tout hasard...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jcex Messages postés 11 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 août 2009
9 juin 2008 à 15:59
Pour vous détailler un peu plus les champs sont générés de la manière suivante, c'est un tableau composé de colonne ac un nom dont le champ est généré de la manière suivante Response.write("<TD id = ""nom") & id_ligne & (""">")  donc l'id c'est nom1, nom2... et sur la mm ligne du tableau ya une checkbox dont l'id est 1,2,3 qui correspond à l'indice de ligne.

Je récupère l'id de la checkbox cochée de la manière suivante

function envoiMails()
{
    alert("envoiMails");
   
    for (var i=0; i<document.forms[0].elements.length; i++)
    {
        var e = document.forms[0].elements[i];
        if( e.type == 'checkbox' )
        {
            if(e.checked)
            {
                    // indice de ligne d'une personne selectionnee
                    var indice = document.forms[0].elements[i].id;
                                       
                    var nom_string = "nom"+indice;
                   
                    alert(nom_string);
                   
                    alert(document.getElementById(nom_string).innerHTML);
            }
        }
    }                   
}

Voila on retrouve ma dernière ligne qui ne fonctionne ceci doit etre du a la variable nom_string mal formatee. J'espere vous avoir éclairé merci d'avance
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
9 juin 2008 à 16:03
Mais il se passe quoi? Que dit le alert? Est-il atteint?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 juin 2008 à 16:05
donc l'id c'est nom1, nom2... et sur la mm ligne du tableau
ya une
checkbox dont l'id est 1,2,3 qui correspond à l'indice de ligne.

déjà, un id et un name devrait commencer par une lettre, ou _...
si tu testes les checkbox, met id="chk1", id="chk2", id="chk3" ....
    et la boucle :
    var n=1;
    while ( document.getElementById("chk"+n) )
    {      traitement de document.getElementById("chk"+n).checked

                et tu veux faire quoi ici ?
  
           n++;
     }

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 juin 2008 à 16:09
pour afficher l'innerHTML :
    alert(document.getElementById("nom"+n).innerHTML);
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
jcex Messages postés 11 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 août 2009
9 juin 2008 à 16:11
Dans Ie il me dit objet requis
Sinon ce que je voulais faire c pour ca que j'avais appele mes checkbox juste par un numero, c'est que je recupére l'Id des checkbox cochées. Et ensuite je veux recupérer le contenu de la case (nom de la personne) dont la ligne a été cochée. donc je récupérais le contenu du champ dont l'id était nom concaténé avec l'id de la checkbox. Ce qui me donnait bien nom1, nom5 un truc cm ca par exemple et je voulais récupéré le nom des personnes présentes dans le tableau dont les lignes 1 et 5 ont été cochées
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 juin 2008 à 16:15
comme je te dis alors....
    var n=1;
    while ( document.getElementById("chk"+n) )
    {      if (document.getElementById("chk"+n).checked )
            {    alert(document.getElementById("nom"+n).innerHTML);   }
            n++;
     }

et tu dois avoir
        id="nom1" id="ckk1", id="nom2" id="chk2", .... id="nom#" id="chk#"

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
jcex Messages postés 11 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 août 2009
9 juin 2008 à 16:28
Merci bien j'y étais presque, j'avais finalement bon mais l'erreur résidait autre part dans la génération de la réponse côté Ajax j'avais un espace dans mon identifiant :S

Merci encore
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
9 juin 2008 à 18:08
Salut,

met toi en réponse accèpté alors... ça pourra servir aux autres...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
Rejoignez-nous