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 avec JSON


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Liste déroulante avec JSON
    Bonjour,
    Actuellement j'ai une liste déroulante fait avec html et css (voir code si dessous) et on ma demander de rentrer les valeurs de la liste (les différentes options) dans un fichier JSON et de faire en sorte a se que la liste affiche les options de ce dit fichier.

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select id="list">
    		<option>Pro 1</option>
    		<option>Pro 2</option>
    		<option>Pro 3</option>
    		<option>Pro 4</option>
    		<option>Pro 5</option>
    		<option>Pro 6</option>
    		<option>Autre</option>
    </select>
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    body{
    	margin:5;
    	padding:5;
    }

    JS:
    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
    var list = document.getElementById('list');
     
    var Selection;
     
    list.addEventListener('change', function() {
     
     
    	switch(list.options[list.selectedIndex].innerHTML){
    		case "Pro 1":
    			Selection = 1;
    			break;
    		case "Pro 2":
    			Selection = 2;
    			break;
    		case "Pro 3":
    			Selection = 3;
    			break;
    		case "Pro 4":
    			Selection = 4;
    			break;
    		case "Pro 5":
    			Selection = 4;
    			break;
    		case 'Autre':
    			Selection = 5;
    			break;
    		default:
    			Selection = 0;
    			break;
    	}
    });
    Le problème c'est que je ne sais pas du tout comment faire pour que la liste récupère et affiche les options du fichier JSON...

    pouvez vous m'aidez ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    commence par ajouter des value aux <option> :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select id="list">
    	<option value="1">Pro 1</option>
    	<option value="2">Pro 2</option>
    	<option value="3">Pro 3</option>
    	<option value="4">Pro 4</option>
    	<option value="5">Pro 5</option>
    	<option value="6">Pro 6</option>
    	<option value="Autre">Autre</option>
    </select>
    Ce sont ces value que tu récupères en JS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Selection = list.value;
    Il n'y a que le cas "Autre" à gérer.
    Dernière modification par ProgElecT ; 21/05/2019 à 14h58.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Je ne comprend pas.... moi les options je veut les récupérer depuis le fichier json je veut pas les écrire dans le code...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Et moi, je te parle de la structure HTML correcte pour un <select>.
    Et donc c'est cette structure qu'il te faut reproduire APRES traitement du fichier json.

    Le fichier json sera du style :
    select-options.json
    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
    [
    	{
    		"text":"Pro 1",
    		"value":"1"
    	},
    	{
    		"text":"Pro 2",
    		"value":"2"
    	},
    	{
    		"text":"Pro 3",
    		"value":"3"
    	},
    	//.....
    	{
    		"text":"Autre",
    		"value":"Autre"
    	},
    ]

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Et moi, je te parle de la structure HTML correcte pour un <select>.
    Et donc c'est cette structure qu'il te faut reproduire APRES traitement du fichier json.
    Je comprend et je le note mais cela ne règle pas mon problème...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Si "ton problème" c'est qu'"on écrive tout le code à ta place", alors tu as un autre problème : ça n'arrivera pas, car on n'est pas là pour ça.

    Je t'ai fourni les bases.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Alors..
    Mon problème est réglé sans l'être.
    explication: Le fichier JSON est utiliser pour être récupérer comme un tableau JS et non pas être récupérer avec Jquery (je ne sais pas si c'est clair) mais maintenant un autre problème se pose... comment, avec une boucle for en js, remplir les options de la balise <select> qui est en HTML?

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Si "ton problème" c'est qu'"on écrive tout le code à ta place", alors tu as un autre problème : ça n'arrivera pas, car on n'est pas là pour ça.

    Je t'ai fourni les bases.
    J'ai jamais dit cela il ne faut pas modifier met mot !
    Je cherche a avoir une explication sur comment faire hors tu me corrige sur une syntaxe sans vraiment me répondre par rapport a mon problème de base.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Corrigé
    J'ai réglé mon problème grâce aux explications d'autre internaute (et pour répondre a certains non je n'ai pas eu de code près fait mais uniquement des explication claire )

    Je donne donc ma solution qui, je le rappel, utilise un fichier JSON comme tableau JS:


    Parti HTML/JS:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <select id="list_2">
     
    	<script>
                    var select = document.getElementById ("list_2");
                    for(var i=0;i<jlist_1.length;i++){
                            var newOption = new Option (jlist_1[i].id, jlist_1[i].Value);
                            select.options.add (newOption);
                    }
                    console.log(jlist_1[0].id);
                    console.log(jlist_1.length);
            </script>
    </select>

    Le console.log permet de vérifier que le tableau est bien présent via la console de debbug.


    Partie fichier JSON:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var jlist_1 = [
    	{"id" : "Proposition 1", "Value" : 1},
    	{"id" : "Proposition 2", "Value" : 2}
    ]

  10. #10
    Invité
    Invité(e)
    Par défaut
    Si tu regardes ce que j'ai écrit dans ce message, tu verras que je t'avais donné la structure du fichier json.


    Et pour apporter une précision : tu n'utilises pas un "fichier JSON", mais un "OBJET JSON".

    • "fichier" suppose de lire/inclure un fichier externe (extension .json), comme je l'ai fait.
    • alors que dans ton cas, jlist_1 est un objet json, défini dans ton script (ou inclus via un script externe, avec l'extension .js).

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    C'est vrais que tu ma donner la structure json je t'en remercie.

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

Discussions similaires

  1. Liste déroulante avec fichier JSON
    Par fredbubu65 dans le forum jQuery
    Réponses: 8
    Dernier message: 19/07/2018, 09h52
  2. Créer une liste déroulante avec jquery et json
    Par beegees dans le forum jQuery
    Réponses: 2
    Dernier message: 30/04/2012, 11h46
  3. liste déroulante avec ajout possible
    Par bachilbouzouk dans le forum ASP
    Réponses: 5
    Dernier message: 19/04/2005, 11h48
  4. liste déroulante avec données mysql
    Par fab44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/02/2005, 19h45
  5. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/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