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 :

SELECT : récupérer index en fonction d'un valeur


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Par défaut SELECT : récupérer index en fonction d'un valeur
    Bonjour,

    Je rencontre un problème qui semble à la fois facile, mais que je n'arrive pas à résoudre. Et le contourner semble très complexe.

    J'ai tout simplement un select, avec des valeurs et des textes.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select id=""monselect">
    <option value="123">merle</option>
    <option value="245">truite</option>
    <option value="62">lapin</option>
    ...
    </select>

    Quelquepart dans mon script, je récupère une variable texte var_txt qui contient soit "merle", soit "truite" ...
    Je cherche à connaitre la valeur de l'index qui correspond à cette chaine :
    merle : 0
    truite : 1
    lapin : 2
    etc ...
    je sais que je dois partir ce ça :

    var_txt=document.getElementById('monselect').options[ii].value;

    Mais j'ai beau me faire des noeuds au cerveau, je n'arrive pas à exprimer ii en fonction de var_txt...

  2. #2
    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,

    J'aurais bêtement envie de récupérer le <select>, d'en parcourir ses <option> et à chaque itération de vérifier le .text. Si c'est celui que vous cherchez, alors vous avez votre .value.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 77
    Par défaut
    Bonjour,

    L'itération me parait également une bonne solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     function test(chaine) {
        var nb   = document.getElementById('monselect').options.length;
        while(nb-- >0) {
            if(document.getElementById('monselect').options[nb].text === chaine) {
          	  return(nb);
            }
        }		  
    }

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id=""monselect">
    Il faudra aussi supprimer le guillemet en trop
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Par défaut
    Citation Envoyé par hotline Voir le message
    Bonjour,

    L'itération me parait également une bonne solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     function test(chaine) {
        var nb   = document.getElementById('monselect').options.length;
        while(nb-- >0) {
            if(document.getElementById('monselect').options[nb].text === chaine) {
          	  return(nb);
            }
        }		  
    }
    Merci hotline
    Ben oui, c'est simple avec l'itération ... comme quoi on manque parfois de lucidité !!!
    Voici ma fonction finale qui fonctionne bien :

    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
     
     
    function getindexfromvalue(chaine,monselect) {
        var nb = document.getElementById(monselect).options.length;
        var iz=0;
        var nindex=0;
        while(iz<nb) 
            {
             if(document.getElementById(monselect).options[iz].value === chaine) 
                 {
                  nindex=iz;
                  }
            iz++;
        }
        return nindex;
    }
    Je passe par la variable nindex car il doit me renvoyer un zéro s'il ne trouve pas l'élement dans la liste

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

Discussions similaires

  1. [XL-2007] Selection d'une image en fonction de la valeur d'une cellule en macro
    Par chevalrv dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/04/2012, 11h21
  2. [Dojo] Passage de la valeur grid.selection.getSelected() a une fonction java au niveau servlet
    Par execrable dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 25/12/2010, 21h05
  3. Select Récupérer les valeurs
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/11/2008, 11h01
  4. Réponses: 2
    Dernier message: 05/03/2008, 22h01
  5. Réponses: 4
    Dernier message: 12/06/2006, 11h46

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