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é :

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>
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
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));
	})
});
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);
			});
		});
	});
}
Fichier 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
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
    }
  }]
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.