IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Récupération des valeurs select après innerHTML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut Récupération des valeurs select après innerHTML
    Bonjour,
    Sur une page à partir de laquelle je souhaite affecter des éléments d'inventaire à des personnes, j'essaye de récupérer la valeur d'un élément select chargé dynamiquement par innerHTML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    function ChargeNomUser (IdExistant,Rang)
    {	var sqlString = "SELECT Utilisateurs.IDUtilisateur, Utilisateurs.Utilisateur FROM Utilisateurs WHERE (((Utilisateurs.[Actif])=True)) ORDER BY Utilisateurs.Utilisateur;";
    	var rs=new ActiveXObject("ADODB.Recordset");
    	try { rs.Open (sqlString , conn, adOpenStatic, adLockUnspecified); }
    	catch(e)
    	{	alert (sqlString); 
    		alert (e.description);
    		rs = null;
    		return "";
    	}
    	var Resultat = "<select onchange=\"SetNouveauUser(" + Rang + ")\"><option value='0'";
    	if ((IdExistant == null) || (IdExistant == 0))
    	{	Resultat += " SELECTED "
    	}
    	Resultat += "></option>";
     
    	while (!rs.eof)
    	{	Resultat += "<option value='" + rs.fields(0).Value + "'";
    		if (IdExistant == rs.fields(0).Value)
    		{	Resultat += " SELECTED ";
    		}
    		Resultat += ">" + rs.fields(1).Value + "</option>";
    		rs.movenext;
    	}
    	Resultat += "</select>";
    	rs.close;
    	rs = null;
    	return Resultat;
    }
     
     
    function ChangeUser (UserID,Rang)
    {	var NouvelleChaine = ChargeNomUser (UserID,Rang);
    	document.getElementById('IdUser' + Rang).innerHTML = NouvelleChaine;
    }
     
    ...
     
    {	chaine = "<tr><td align=left;>" + rs.fields(0).Value + "</td>";
    	chaine += "<td align=center><img id=\"ClickUser" + idx +"\" style=\"width: 20px; height: 20px;\" src=\"../images/worker.png\"";
    	chaine += "onclick=\"javascript:ChangeUser(" + rs.fields(5).Value + "," + idx + ")\"></td>";
    	chaine += "<td id=\"IdUser" + idx + "\">" + rs.fields(1).Value + "</td>";
    J'indexe les éléments de ma liste avec un incrément idx afin de pouvoir traiter la bonne ligne et je génère mon code en cliquant sur un icone (worker.png) avant de le passer dans l'innerHTML.

    Tout fonctionne bien ... sauf que je n'arrive pas à récupérer la valeur du select ajouté dynamique quand je l'utilise.

    J'ai vu différents post sur le web sur le sujet mais tous très anciens, indiquant des difficultés de cette méthode.

    J'utilise IE8 et je devéloppe de l'hta.

    Y a t'il quelque chose que je fais mal ou y aurait-il un moyen plus simple de faire ce que j'essayer de faire ?

    D'avance merci

    M.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Y a t'il quelque chose que je fais mal
    oui le innerHTML !

    Passe par le DOM ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Merci ... mais encore ?

    Serait-il possible d'avoir une réponse un peu plus élaborée utilisable comme base par un béotien ?

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    En fait il est préférable et hautement recommandé de créer les éléments dans l'arbre DOM. Vous pouvez effectuer des recherches sur le forum ou dans la Faq et même sur Google avec les mots-clefs (par exemple) :

    createElement, appendChild, cloneNode, insertBefore
    Les éléments ainsi créés pourront à coup sûr être interrogés par la suite.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 101
    Par défaut
    Merci Vermine,
    Après quelques recherches, ma génération de zone select et donc la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    var sel = document.getElementById("select");
    var opt = document.createElement("option");
    var idx = 0;
    var marker = 0;
    while (!rs.eof)
    {	opt.value = rs.fields(0).Value;
    	opt.text = rs.fields(1).Value;
    	sel.add (opt, null);
    	if (IdExistant == rs.fields(0).Value)
    	{	marker = idx;
    	}
     
    	rs.movenext;
    	idx += 1;
    }
    sel.selectedindex = marker;
    Par contre, cela se fait dans une fonction, donc j'imagine qu'il faudrait que j'utilise une variable global pour l'utiliser dans ma page ?

    Ma question est donc maintenant comment est-ce que je fais pour la positionner à l'écran à l'endroit que je souhaite, comme je pouvais le faire avant avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('IdUser' + Rang).innerHTML = NouvelleChaine;
    et comment je fais pour le détruire une fois que j'ai récupérer ma valeur ?

    Merci

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Là vous récupérer un élément déjà existant dont l'id est "select"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("select");
    Ce qui veut dire que l'élément est déjà positionné. Ne serait-ce pas plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var mon_select = document.createElement("SELECT");
     
    //... le reste du code
     
    document.getElementById('IdUser' + Rang).appendChild(mon_select);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupération des valeurs du Select
    Par DSGSLA dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/03/2010, 11h38
  2. Réponses: 2
    Dernier message: 23/10/2009, 10h16
  3. [1.x] Récupération des valeurs sectionnées d'un select multiple
    Par jemele dans le forum Symfony
    Réponses: 6
    Dernier message: 20/06/2008, 12h21
  4. Récupération des valeurs select multiple sans sélection
    Par akara dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 17/07/2007, 19h10
  5. Récupération des valeurs de select
    Par ikhibi dans le forum Langage
    Réponses: 1
    Dernier message: 19/02/2007, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo