List Json in a Select with Jquery

0

I am not able to list the data of a Json in a Select

My Jquery code looks like this:

$("#cidades").change(function () {
            var options_escolas = '';	
            var cidade = $("#cidades").val();			
				$.ajax({ url: 'api_escolas.php/?cidade='+cidade, 
			    dataType: 'json', 
			    crossDomain: true, 
			        success: function (data) { 		
                        $.each(data, function (key, val) {
					    options_escolas += '<option value="' + val + '">' + val + '</option>';
				        });	
				    $("#escolas").html(options_escolas);
			        } 	
			    });
		});						

And the Json file returned is as follows:

[
	9,
	[
		{
			"anoCenso": 2013,
			"cod": 52085163,
			"nome": "CENTRO MUNICIPAL DE EDUCACAO INFANTIL JOSE PEDRO DA COSTA",
			"codCidade": 5200050,
			"cidade": "ABADIA DE GOIAS",
			"estado": "GO",
			"regiao": "Centro-Oeste",
			"situacaoFuncionamento": 2,
			"dependenciaAdministrativa": 3,
			"idebAI": 0,
			"idebAF": 0,
			"enemMediaGeral": 0,
			"situacaoFuncionamentoTxt": "Paralisada",
			"dependenciaAdministrativaTxt": "Municipal"
		},
		{
			"anoCenso": 2013,
			"cod": 52098290,
			"nome": "CENTRO MUNICIPAL DE EDUCACAO INFANTIL SAINT CLAIR DE MENDONCA",
			"codCidade": 5200050,
			"cidade": "ABADIA DE GOIAS",
			"estado": "GO",
			"regiao": "Centro-Oeste",
			"situacaoFuncionamento": 1,
			"dependenciaAdministrativa": 3,
			"idebAI": 0,
			"idebAF": 0,
			"enemMediaGeral": 0,
			"situacaoFuncionamentoTxt": "Em atividade",
			"dependenciaAdministrativaTxt": "Municipal"
		},
		{
			"anoCenso": 2013,
			"cod": 52040127,
			"nome": "COLEGIO ESTADUAL MANOEL LIBANIO DA SILVA",
			"codCidade": 5200050,
			"cidade": "ABADIA DE GOIAS",
			"estado": "GO",
			"regiao": "Centro-Oeste",
			"situacaoFuncionamento": 1,
			"dependenciaAdministrativa": 2,
			"idebAI": 0,
			"idebAF": 4,
			"enemMediaGeral": 469.2380065917969,
			"situacaoFuncionamentoTxt": "Em atividade",
			"dependenciaAdministrativaTxt": "Estadual"
		}
	]
]

And in select, only the number 9 appears. I need to list schools by name.

    
asked by anonymous 26.02.2018 / 21:15

2 answers

1

Return is an array where information is in the second index. Since you want to select popular with this information, you can get the objects of the second array index with data[1] . Then add to the val the name of the key you pick:

$.each(data[1], function (key, val) {
   options_escolas += '<option value="' + val.cod + '">' + val.nome + '</option>';
}); 

In the above example, val.cod will get the values in cod: and val.nome in nome: of each block.

    
26.02.2018 / 21:32
0

The result is in the second item in the return array. Change the line for this:

$.each(data[1], function (key, val) {
                        options_escolas += '<option value="' + val.nome + '">' + val.nome + '</option>';
    
26.02.2018 / 21:37