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 :

3 Combobox (Listbox) en cascade la 3éme colonne ne s'affiche pas


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Par défaut 3 Combobox (Listbox) en cascade la 3éme colonne ne s'affiche pas
    Bonjour

    Je souhaite proposé à l'utilisateur à l'aide de trois listbox de faire un choix descendant.

    Le code suivant fonctionne mais je n'arrive pas à trouver pourquoi lorsque l'on clique dans le deuxiéme listbox rien ne s'affiche dans le troisiéme.

    Question subsidiaire Peut on fixer la largeur des combobox pour qu'elle ne change pas en fonction du contenu ?

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <html>
    <head>
     
    <script type="text/javascript">
    <!--
    var available_options = {};
    available_options['meca1'] = new Array(
                                         'Moteur',
                                         'Haut moteur'
                                        );
    available_options['carr1'] = new Array(
    				     'voiture',
                                         'Units supérieurs avant'
                                        );
    available_options['meca10'] = new Array(
                                            'moteur'
                                           );
    available_options['meca11'] = new Array(
                                            'Joints moteur'
                                           );
    available_options['carr10'] = new Array(
                                            'Caisse'
                                           );
    available_options['carr11'] = new Array(
                                            'Capot'
                                           ); 
    function loadSBOptions(selectbox1, selectBox)
    {
    selectBox.options.length = 0;
    if(available_options[selectbox1])
    {
    for(i = 0; i < available_options[selectbox1].length; i++)
    {
    selectBox.options.add(new Option(available_options[selectbox1][i]));
    }
    }
    else
    {
    }
    }
    -->
      </script>
    </head>
    <body onload="loadSBOptions(document.forms[0].selectbox1.options[document.forms[0].selectbox1.selectedIndex].value, document.forms[0].selectbox2);">
    <body onload="loadSBOptions(document.forms[0].selectbox2.options[document.forms[0].selectbox2.selectedIndex].value, document.forms[0].selectbox3);">
    <form method="post">
      <select name="selectbox1" size="20" onchange="loadSBOptions(this.options[this.selectedIndex].value, this.form.selectbox2);">
      <option value="meca1">Mécanique</option>
      <option value="carr1">Carrosserie</option>
      </select>
     
      <select name="selectbox2" size="20" onchange="loadSBOptions(this.options[this.selectedIndex].value, this.form.selectbox3);">
      <option value="meca10"> </option>
      <option value="meca11"> </option>
      <option value="carr10"> </option>
      <option value="carr11"> </option>
      <option value=""> </option>
      </select>
     
      <select name="selectbox3" size="20" onchange="">
      <option value=""> </option>
      </select>
    </form>
     
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Pourquoi tu as deux balises <body> ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Par défaut
    Un malheureux copier coller. J'ai rectifié mais j'ai toujours le même probléme.

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <html>
    <head>
     
    <script type="text/javascript">
    <!--
    var available_options = {};
    available_options['meca1'] = new Array(
                                         'Moteur',
                                         'Haut moteur'
                                        );
    available_options['carr1'] = new Array(
    				     'voiture',
                                         'Units supérieurs avant'
                                        );
    available_options['meca10'] = new Array(
                                            'moteur'
                                           );
    available_options['meca11'] = new Array(
                                            'Joints moteur'
                                           );
    available_options['carr10'] = new Array(
                                            'Caisse'
                                           );
    available_options['carr11'] = new Array(
                                            'Capot'
                                           ); 
    function loadSBOptions(selectbox1, selectBox)
    {
    selectBox.options.length = 0;
    if(available_options[selectbox1])
    {
    for(i = 0; i < available_options[selectbox1].length; i++)
    {
    selectBox.options.add(new Option(available_options[selectbox1][i]));
    }
    }
    else
    {
    }
    }
    -->
      </script>
    </head>
    <body onload="loadSBOptions(document.forms[0].selectbox1.options[document.forms[0].selectbox1.selectedIndex].value, document.forms[0].selectbox2);"
    onload="loadSBOptions(document.forms[0].selectbox2.options[document.forms[0].selectbox2.selectedIndex].value, document.forms[0].selectbox3);">
    <form method="post">
      <select name="selectbox1" size="20" onchange="loadSBOptions(this.options[this.selectedIndex].value, this.form.selectbox2);">
      <option value="meca1">Mécanique</option>
      <option value="carr1">Carrosserie</option>
      </select>
     
      <select name="selectbox2" size="20" onchange="loadSBOptions(this.options[this.selectedIndex].value, this.form.selectbox3);">
      <option value="meca10"> </option>
      <option value="meca11"> </option>
      <option value="carr10"> </option>
      <option value="carr11"> </option>
      <option value=""> </option>
      </select>
     
      <select name="selectbox3" size="20" onchange="">
      <option value=""> </option>
      </select>
    </form>
     
    </body>
    </html>

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Tu ne peux pas avoir deux onload, sépare tes deux fonctions par un point-virgule ...

    Exemple :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="fonction1('gnia');fonction2('gnia2')">

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Par défaut
    Merci je ne savais pas que l'on ne peut pas utiliser deux onload. Toujours rien d'affiché dans le listbox 3 aprés correction, je me demande si je ne devrais pas tout reprendre à zéro sans les tableaux .

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <html>
    <head>
     
    <script type="text/javascript">
    <!--
    var available_options = {};
    available_options['meca1'] = new Array(
                                         'Moteur',
                                         'Haut moteur'
                                        );
    available_options['carr1'] = new Array(
    				     'voiture',
                                         'Units supérieurs avant'
                                        );
    available_options['meca10'] = new Array(
                                            'moteur'
                                           );
    available_options['meca11'] = new Array(
                                            'Joints moteur'
                                           );
    available_options['carr10'] = new Array(
                                            'Caisse'
                                           );
    available_options['carr11'] = new Array(
                                            'Capot'
                                           ); 
    function loadSBOptions(selectbox1, selectBox)
    {
    selectBox.options.length = 0;
    if(available_options[selectbox1])
    {
    for(i = 0; i < available_options[selectbox1].length; i++)
    {
    selectBox.options.add(new Option(available_options[selectbox1][i]));
    }
    }
    else
    {
    }
    }
    -->
      </script>
    </head>
    <body onload="loadSBOptions(document.forms[0].selectbox1.options[document.forms[0].selectbox1.selectedIndex].value, document.forms[0].selectbox2);loadSBOptions(document.forms[0].selectbox2.options[document.forms[0].selectbox2.selectedIndex].value, document.forms[0].selectbox3)">
    <form method="post">
      <select name="selectbox1" size="20" onchange="loadSBOptions(this.options[this.selectedIndex].value, this.form.selectbox2);">
      <option value="meca1">Mécanique</option>
      <option value="carr1">Carrosserie</option>
      </select>
     
      <select name="selectbox2" size="20" onchange="loadSBOptions(this.options[this.selectedIndex].value, this.form.selectbox3);">
      <option value="meca10"> </option>
      <option value="meca11"> </option>
      <option value="carr10"> </option>
      <option value="carr11"> </option>
      <option value=""> </option>
      </select>
     
      <select name="selectbox3" size="20" onchange="">
      <option value=""> </option>
      </select>
    </form>
     
    </body>
    </html>

  6. #6
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    la valeur dans la deuxième selectiones est
    'Moteur',
    et non
    meca10
    .

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

Discussions similaires

  1. [C# Winform] Combobox, listBox, plusieurs colonnes?
    Par LsMarx dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/09/2012, 15h40
  2. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  3. listbox en cascade
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 23/01/2008, 15h05
  4. [VBA-E]Rowsource variable pour combobox/listbox
    Par ippo_master dans le forum Excel
    Réponses: 7
    Dernier message: 25/10/2007, 13h44
  5. Noms des colonnes ne s'affichent pas dans un JTable
    Par Bourdet dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/07/2005, 15h26

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