J'aimerai remplir une liste déroulante en lisant dans un fichier JSON. J'ai essayé pleins de code et lu beaucoup de chose sur le web en essayant de l'adapter mais je reste bloqué.
Je vais mettre mon code HTML ainsi que le code JS que j'ai testé, et un extrait de mon fichier JSON que je dois lire.
Code HTML :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <div id="custom-select-class" class="custom-select" style="width:200px;" onclick="showSecondSelector()"> <select id="firstDropdown" name="firstDropdown"> <option value="">Select Class</option> <!-- <option value="1">mp</option> <option value="2">ci</option> <option value="3">cr</option> <option value="4">cin</option> <option value="5">mod</option> --> </select> </div>
Code JS que j'ai testé :
J'ai aussi testé ça:
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 <script type="text/javascript"> $('div firstDropdown').on('click touchstart', function() { $.getJSON("labels.json", function(data) { var items = []; for (var valeur in data['_fields']) { var variable = data['_fields'][valeur]; if (valeur == 0){ $('body div firstDropdown').prepend('<form><select name="labels" id="labels" size="1"</select></form>'); $('#labels').append('<option>' + variable + '</option>'); } else { $('#labels').append('<option>' + variable + '</option>'); } }; }); } </script>
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 let dropdown = $('#firstDropdown'); dropdown.empty(); dropdown.append('<option selected="true" disabled>Select Class</option>'); dropdown.prop('selectedIndex', 0); const url = 'labels.json'; /* url du fichier JSON const url = 'labels.json'; // Populate dropdown with list of labels $.getJSON(url, function (data) { $.each(data, function (key, entry) { dropdown.append($('<option></option>').attr('value', entry._fields)); }) });Fichier JSON :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function showSelectClass() { $('#firstDropdown').on('click',function(){ $.getJSON('labels.json',function(data){ $.each(data,function(index,d){ $('#firstDropdown').append(d._fields); }); }); }); }
En fait, ce que je veux récupérer, c'est les valeurs de "_fields" --> mp,ci,cr et remplir ma liste déroulante avec ces valeurs.
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 [ { "keys": [ "label" ], "length": 1, "_fields": [ "mp" ], "_fieldLookup": { "label": 0 } }, { "keys": [ "label" ], "length": 1, "_fields": [ "ci" ], "_fieldLookup": { "label": 0 } }, { "keys": [ "label" ], "length": 1, "_fields": [ "cr" ], "_fieldLookup": { "label": 0 } }]
Partager