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 :

[javascript] Probleme liste deroulante


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut [javascript] Probleme liste deroulante
    Bonjour a tous,

    Voici mon probleme, j'ai plusieurs liste deroulantes contenant toutes les meme options. Je voudrais lorsque je click sur une option d'une des liste alors toutes les autres listes soient reformees avec toutes les options sauf celle qui vient d'etre clickée.

    Voici ma fonction pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function enleve(y, val){
     
      for(x=(parseInt(y)+1); x<20; x++)
      {
        alert(document.getElementById('article_'+x).options[val].value);
        if(document.getElementById('article_'+x).options[val].value == 0){
        }
        else{
            document.getElementById('article_'+x).options[val] = null;
        }
      }
    }
    le alert ne fonctionne pas.

    Et voici l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name=\"article_".$y."\" onChange=\"javascript:enleve(".$y.", this.value)\" >
    Toutes les listes deroulantes etant generee dans une boucle PHP.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 232
    Points : 8 494
    Points
    8 494
    Billets dans le blog
    17
    Par défaut
    Salut !
    Tout d'abord c'est une mauvaise idée de donner des NAME/ID du style monElement_$x, mieux vaut passer par des tableaux : mesElements[], c'est bcp plus souple.
    Pour ton problème, je ferais :

    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
    44
    <html>
    <head>
    <script>
        function traiter(oSelect) {
            var i, j ;
            var label = oSelect.options[oSelect.selectedIndex].text ;
            for ( i = 0 ; i < oSelect.form.elements["fruits[]"].length ; i++ ) {
                if ( oSelect != oSelect.form.elements["fruits[]"][i] ) {
                    for ( j = 0 ; j < oSelect.form.elements["fruits[]"][i].options.length ; j++ ) {
                        if ( oSelect.form.elements["fruits[]"][i].options[j].text == label ) {
                            oSelect.form.elements["fruits[]"][i].options[j] = null ;
                            // Attention, y'a peut-être un effet de bord par ici
                        }
                    }
                }
            }
        }
    </script>
    </head>
    <body>
    <form>
        <select name="fruits[]" size="5" onclick="traiter(this)">
            <option>Pomme
            <option>Fraise
            <option>Banane
            <option>Mangue
        </select>
     
        <select name="fruits[]" size="5" onclick="traiter(this)">
            <option>Pomme
            <option>Fraise
            <option>Banane
            <option>Mangue
        </select>
     
        <select name="fruits[]" size="5" onclick="traiter(this)">
            <option>Pomme
            <option>Fraise
            <option>Banane
            <option>Mangue
        </select>
    </form>
    </body>
    </html>
    Je te laisse adapter le script à tes besoins.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Oui mais en utilisant cette methode comment fait tu pour reccuperer les valeurs de chaque liste deroulante ?

    En tout cas merci pour la fonction, elle a l'air vraiment beaucoup plus avancee que ce que j'essayais d'utiliser. J'ai hate de la tester.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 232
    Points : 8 494
    Points
    8 494
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par samtheh
    Oui mais en utilisant cette methode comment fait tu pour reccuperer les valeurs de chaque liste deroulante ?
    document.monForm.elements["fruits[]"] est un tableau de <select> ayant pour name "fruits[]".

    document.monForm.elements["fruits[]"][0].options.length : nombre de <option> du premier <select>, etc.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Apres validation du formulaire je voulais dire.

    En PHP j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_POST[articles][$y]
    Avec dans mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="articles[]">
    Sinon la fonction marche parfaitement merci bien.

Discussions similaires

  1. probleme liste deroulante
    Par enimnez dans le forum Struts 1
    Réponses: 1
    Dernier message: 17/05/2008, 14h14
  2. Probleme liste deroulante
    Par lelapinrusse dans le forum IHM
    Réponses: 2
    Dernier message: 13/01/2008, 10h34
  3. Probleme Liste Deroulante
    Par wayle dans le forum Servlets/JSP
    Réponses: 16
    Dernier message: 01/08/2007, 14h28
  4. probleme listes deroulantes dependantes
    Par neoboy dans le forum IHM
    Réponses: 5
    Dernier message: 20/07/2007, 15h43
  5. Probleme liste deroulante
    Par lemagicien dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/01/2006, 17h24

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