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 :

Liste déroulante en JavaScript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 20
    Par défaut Liste déroulante en JavaScript
    Bonjour à tous
    Est ce que quelqu'un peut m'aider à trouver le chemin pour résoudre ce problème.

    ----------------------le sujet------------------------

    En JavaScript, si l’utilisateur clique sur le bouton “notation”, insérez dans l’élément HTML BODY un formulaire
    (FORM) comportant un menu déroulant (balise html <«select»>) permettant à l’utilisateur de choisir une note
    de musique en notation classique. N’ajoutez pas de bouton SUBMIT.
    b) Créez en JavaScript un tableau de données (array) permettant de retrouver les correspondances.
    c) Générez les balises OPTIONS du SELECT à l’aide d’une boucle foreach parcourant toutes les entrées du
    tableau. Ajoutez une option vide par défaut (pas de choix)
    Le JavaScript doit être unobstrusive.

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="style.css">
        <title>Notation américaine</title>
    </head>
    <body>
    <input type="button" name="button" value="notation" onclick="notes()">
     
        <script src="main.js"></script>
     
    </body>
    </html>


    Code JavaScript : 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
    form = document.createElement("form");
    label = document.createElement("label");
    label.innerHTML = "Trouver la note américaine de : ";
    select = document.createElement("select");
    form.appendChild(label);
    form.appendChild(select);
    document.body.appendChild(form);
    paragraphe = document.createElement("p");
    document.body.appendChild(paragraphe);
    function notes(){
      let notes;
      notes = {
        "": "",
        C: "Do",
        D: "Re",
        E: "Mi",
        F: "Fa",
        G: "Sol",
        A: "La",
        B: "Si",
      };
    }
     
     
    for (const key in notes) {
      const option = document.createElement("option");
      option.value = key;
      option.textContent = notes[key];
      select.appendChild(option);
    }
     
    select.addEventListener("change", function () {
      paragraphe.textContent =
        "La notation américaine pour la note " +
        select.options[this.selectedIndex].textContent +
        " est " +
        this.value;
    });

    si je clique sur notation rien ne se passe


    merci d'avance

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 124
    Par défaut
    Salut

    Pourquoi la déclaration de ton array est elle dans une fonction?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //function notes(){
      let notes;
      notes = {
        "": "",
        C: "Do",
        D: "Re",
        E: "Mi",
        F: "Fa",
        G: "Sol",
        A: "La",
        B: "Si",
      };
    //}
    là cela fonctionne.
    Édit:
    J'ajouterai ceci dans l’événement pour indiquer le non choix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select.addEventListener("change", function ()
    	{
    		if (this.value !=="")
    		{
    			paragraphe.textContent =
    			"La notation américaine pour la note " +
    			select.options[this.selectedIndex].textContent +
    			" est " +
    			this.value;
    			}else{
    			paragraphe.textContent = "pas de choix";
    		}
    	}
    );
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 20
    Par défaut
    Bonjour

    J'ai revu le code et j'obtiens ceci

    -------------------------------------------JavaScript-------------------------
    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
    form = document.createElement("form");
    label = document.createElement("label");
    label.innerHTML = "Trouvez la notation américaine de : ";
    select = document.createElement("select");
    form.appendChild(label);
    form.appendChild(select);
    document.body.appendChild(form);
    paragraphe = document.createElement("p");
    document.body.appendChild(paragraphe);
     
    const notes = {
        "": "",
        C: "Do",
        D: "Re",
        E: "Mi",
        F: "Fa",
        G: "Sol",
        A: "La",
        B: "Si",
    };
     
    for (const key in notes) {
        const option = document.createElement("option");
        option.value = key;
        option.textContent = notes[key];
        select.appendChild(option);
    }
     
    select.addEventListener("change", function() {
        paragraphe.textContent = "La notation américaine pour la note " + select.options[this.selectedIndex].textContent + " est " + this.value;
    });
    dans le fichier HTML je dois créer un bouton Notation lié au script sur lequel on clique pour avoir une liste déroulante.

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Bonjour,

    Insère au moins ton bouton dans un conteneur et donne-lui un id, pas un name;
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p>
       <input type="button" id="b" value="notation" />
    </p>

    Par ailleurs, ton label ne sert à rien, en l'état...

    Modifie le code comme ça:
    Code javascript : 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
    document.getElementById("b").addEventListener("click",function(){
     
    	const notes = {
    		"": "",
    		C: "Do",
    		D: "Re",
    		E: "Mi",
    		F: "Fa",
    		G: "Sol",
    		A: "La",
    		B: "Si",
    	};
     
    	const f = document.createElement("form");
     
    	const lab = document.createElement("label");
    	lab.textContent = "Trouver la note américaine de : ";
    	lab.setAttribute("for","sel");
     
    	const sel = document.createElement("select");
    	sel.setAttribute("id","sel");
    	for(let key in notes){
    		let opt = document.createElement("option");
    		opt.value = key;
    		opt.text = notes[key];
    		sel.appendChild(opt);
    	}
     
    	f.appendChild(lab);
    	f.appendChild(sel);
    	document.body.appendChild(f);
     
    	const p = document.createElement("p");
    	document.body.appendChild(p);
     
    	sel.addEventListener("change", function () {
    		p.textContent =
    		this.value!="" ?
    		`La notation américaine pour la note ${sel.options[this.selectedIndex].text} est ${this.value}.`:
    		"Choisissez une note."
    	});
    },{once:true}
    )

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 20
    Par défaut
    Bonjour
    Je demande de l'aide sur ce sujet là qui est une suite de ce code:


    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
    document.getElementById("button").addEventListener("click", function () {
     
      const notes = {
        "": "",
        C: "Do",
        D: "Re",
        E: "Mi",
        F: "Fa",
        G: "Sol",
        A: "La",
        B: "Si",
      };
     
      const f = document.createElement("form");
     
      const lab = document.createElement("label");
      lab.textContent = "Trouver la note américaine de : ";
      lab.setAttribute("for", "sel");
     
      const sel = document.createElement("select");
      sel.setAttribute("id", "sel");
      for (let key in notes) {
        let opt = document.createElement("option");
        opt.value = key;
        opt.text = notes[key];
        sel.appendChild(opt);
      }
     
      f.appendChild(lab);
      f.appendChild(sel);
      document.body.appendChild(f);
     
      const p = document.createElement("p");
      document.body.appendChild(p);
     
      sel.addEventListener("change", function () {
        p.textContent =
          this.value != "" ?
          `La notation américaine pour la note ${sel.options[this.selectedIndex].text} est ${this.value}.` :
          "Choisissez une note."
      });
    }, {
      once: true
    })
    Lorsque l’utilisateur choisit une note :
    a) Envoyez au serveur PHP une requête AJAX en envoyant la valeur de l’élément et en récupérant en JavaScript
    l’url du script PHP dans l’attribut ACTION de l’élément FORM.
    Sur le serveur
    b) A l’aide de la valeur du SELECT, il doit retrouver dans son tableau de correspondance (array) sa correspondance
    américaine (voir Devoir N° 1 de JavaScript perfectionnement)
    c) Votre code PHP doit retourner le message « La notation américaine pour la note X est X». Javascript le récupère
    et l’affiche dans un élément de la page.
    Le Javascript doit être unobstrusive.

    Merci d'avance

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    hormis le fait de recopier le code qui t'a été fournie qu'est ce que tu as trouvé comme réponse/code à mettre en place !!!!

    Je sais c'est pas sympa mais je ne suis pas sûr que tu fasses de réels efforts d'apprentissage, fait moi me tromper

Discussions similaires

  1. Création liste déroulante en javascript pour adobe livecyrcle
    Par mad000 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/07/2009, 14h57
  2. [PHP-JS] Liste déroulante et javascript
    Par zorbo dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/05/2008, 14h54
  3. Vider et Remplir une liste déroulante en javascript
    Par vds2302 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/11/2007, 16h47
  4. Réponses: 1
    Dernier message: 26/08/2007, 22h21
  5. sens d'ouverture d'une liste déroulante en javascript
    Par arnogef dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/05/2007, 21h09

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