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

HTML Discussion :

Liste à cocher choix multiple


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut Liste à cocher choix multiple
    Bonjour,

    Le code ci-dessous fonctionne mais je n'arrive pas à trouver comment faire pour transformer la liste en case à cocher.
    L'idée étant de laisser le choix de sélectionner une ou plusieurs tailles
    Pourriez vous me donner une idée
    Bien à vous

    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
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
     
    <?php $p2 = array(
        "S-XXXL" => array("S", "M", "L", "XL", "XXL", "XXXL"),
        "34-48" => array("34", "36", "38", "40", "42", "44", "46", "48"),
        "50-64" => array("50", "52", "54", "56", "58", "60", "62", "64"),
        "TU" => array("TU"),
        "KG" => array("GR", "KG", "ML", "CL", "DL", "LITRE")
    ); ?>
    <form method="post" action="">
        <select name="monSelect" onchange="changeSelect(this);">
            <option value="S-XXXL">S-XXXL</option>
            <option value="34-48">34-48</option>
            <option value="50-64">50-64</option>
            <option value="TU">TU</option>
            <option value="KG">KG</option>
        </select><br><br>
     
        <select name="S2" id="S2" style="width: 100px;height:180px" multiple="multiple" class="selecColor">
            <option value="rien">Mon choix...</option>
        </select><br><br>
     
    </form>
    <script>
        function changeSelect(selected) {
            //on recupere le php
            var data = <?php echo json_encode($p2); ?>;
            console.log("selected.value : " + selected.value + ", data[selected.value] : " + data[selected.value]);
            var S2 = document.getElementById("S2");
            //on efface tous les children options
            while (S2.firstChild) {
                S2.removeChild(S2.firstChild);
            }
            //on rajoute les nouveaux children options
            for (var chaqueSousTitre of data[selected.value]) {
                var opt = document.createElement("option");
                opt.value = chaqueSousTitre;
                opt.innerHTML = chaqueSousTitre;
                S2.appendChild(opt);
            }
        }
    </script>
    </body>
    </html>
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 435
    Par défaut
    Bonjour,

    Une solution possible à partir de ton code est de remplacer ta balise html <select id="S2"> par une balise <div id="S2">
    puis dans la boucle js for où tu ajoutes les éléments enfants ("nouveaux children"), remplacer la création d'un élément option par la création d'un élément input avec un attribut type="checkbox".
    Une balise label pour les checkbox est aussi une bonne idée.

    Un test rapide à améliorer :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            // [...]
            //on rajoute les nouveaux children options
            for (const chaqueSousTitre of data[selected.value]) {
                const cbx = document.createElement("input");
                cbx.type= 'checkbox';
                cbx.value = chaqueSousTitre;
     
                const label = document.createElement("label");
                label.innerHTML = chaqueSousTitre;
     
                label.appendChild(cbx);
                S2.appendChild(label);
            }

  3. #3
    Membre confirmé
    Homme Profil pro
    CODE & DESIGN - with attitude
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : CODE & DESIGN - with attitude
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Par défaut
    Des listes à cocher ce n'est pas <select> mais <input type="checkbox">.

    Avec çà tu auras à coup sûr des cases à cocher. Il y en a pleins de différentes. Regardes la doc.

    C'est sur MDN : <input type="checkbox">

  4. #4
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonjour Pitet,

    Merci mille fois, ta solution est exactement ce que je cherchais, une dernière question:
    Comment fait-on pour aligner le résultat verticalement et non horizontalement

    Nom : Combo.png
Affichages : 92
Taille : 4,5 Ko

    J'ai bien trouvé une solution, mais j'ai pas l'impression qu'elle soit top

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style>
    .box {
      display: flex;
      flex-wrap: wrap;
    }
    .box>* {
      flex: 20 1 1000px;
    }
    </style>
    Merci beaucoup
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  5. #5
    Membre confirmé
    Homme Profil pro
    CODE & DESIGN - with attitude
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : CODE & DESIGN - with attitude
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Par défaut
    C'est pas possible...

    Pour sélectionner les résultats si ils sont disposés à l'horizontale de fait tu ne peux plus choisir une ligne puisqu'il y en a une seule. Tu vois le principe ?

  6. #6
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonjour,

    Je passe le sujet en résolu car cela fonctionne parfaitement en l'état, voici le code si besoin

    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
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
     
    <?php $p2 = array(
        "S-XXXL" => array("S", "M", "L", "XL", "XXL", "XXXL"),
        "34-48" => array("34", "36", "38", "40", "42", "44", "46", "48"),
        "50-64" => array("50", "52", "54", "56", "58", "60", "62", "64"),
        "TU" => array("TU"),
        "KG" => array("GR", "KG", "ML", "CL", "DL", "LITRE")
    ); ?>
     
    <style>
    .box {
      display: flex;
      flex-wrap: wrap;
    }
    .box>* {
      flex: 20 1 1000px;
    }
    </style>
        <select name="monSelect" onchange="changeSelect(this);">
            <option value="S-XXXL">S-XXXL</option>
            <option value="34-48">34-48</option>
            <option value="50-64">50-64</option>
            <option value="TU">TU</option>
            <option value="KG">KG</option>
        </select><br><br>
     
        <div id="S2" class="box" ></div>
     
    <script>
        function changeSelect(selected) {
            //on recupere le php
            var data = <?php echo json_encode($p2); ?>;
            console.log("selected.value : " + selected.value + ", data[selected.value] : " + data[selected.value]);
            var S2 = document.getElementById("S2");
            //on efface tous les children options
            while (S2.firstChild) {
                S2.removeChild(S2.firstChild);
            }
            // [...]
            //on rajoute les nouveaux children options
            for (const chaqueSousTitre of data[selected.value]) {
                const cbx = document.createElement("input");
                cbx.type= 'checkbox';
                cbx.value = chaqueSousTitre;
     
                const label = document.createElement("label");
                label.innerHTML = chaqueSousTitre;
     
                label.appendChild(cbx);
                S2.appendChild(label);
            }
        }
    </script>
     
    </body>
    </html>
    Dans la version de production, j'alimente la balise <select> via une requête et ainsi permet à l'utilisateur d'ajouter des grilles de tailles si besoin

    Merci à Pytet pour son aide précieuse
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


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

Discussions similaires

  1. Formulaire avec liste basée sur une autre table
    Par sabotage dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/08/2005, 13h43
  2. Mal a la tete avec liste chainée d'objet
    Par Raton dans le forum C++
    Réponses: 23
    Dernier message: 03/08/2005, 22h13
  3. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10
  4. Aide à la saisie avec liste déroulante
    Par Oluha dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2005, 09h04
  5. Conditions avec liste de tuples
    Par Robert999 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/07/2004, 11h01

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