-2
I wanted to reduce the number of arrays and tried this way the problem is that I think something is missing because it is not reading the information inside the json.
<select id="myselect" class="classa" onchange="change_myselect(this.value)">
<option value="">Faixa etária</option>
<option class="opcoes" value="faixaA">0 a 17 anos</option>
<option class="opcoes" value="faixaB">18 a 25 anos</option>
<option class="opcoes" value="faixaC">26 a 35 anos</option>
<option class="opcoes" value="faixaD">36 ou mais</option>
<option class="opcoes" value="faixaE">Desconhecido</option>
</select>
<br> <br>
<select id="myselect2" class="classb" onchange="change_myselect(this.value)">
<option class="opcoes" value="">Sexo:</option>
<option class="opcoes" value="faixaF">Masculino</option>
<option class="opcoes" value="faixaG">Feminino</option>
<option class="opcoes" value="faixaH">Desconhecido</option>
</select>
<br> <br>
<select id="myselect3" class="classc" onchange="change_myselect(this.value)">
<option class="opcoes" value="">Recurso a arma:</option>
<option class="opcoes" value="faixaI">Sim</option>
<option class="opcoes" value="faixaJ">Não</option>
<option class="opcoes" value="faixaK">Desconhecido</option>
</select>
<p id="demoA"></p>
<script type="text/javascript">
function change_myselect(value) {
$.getJSON("dados.json", function(json) {
var faixas = { };
var genero = { };
var armas = { };
for(var i = 0; i < json.length; i++) {
if (faixas[json[i].Faixa] == undefined) {
faixas[json[i].Faixa] = ["FaixaA"];
faixas[json[i].Faixa] = ["FaixaB"];
faixas[json[i].Faixa] = ["FaixaC"];
faixas[json[i].Faixa] = ["FaixaD"];
faixas[json[i].Faixa] = ["FaixaE"];
}
faixas[json[i].Faixa].push(json[i].Nome + " " + json[i].Idade + " " + json[i].Localidade);
if (genero[json[i].Sexo] == undefined) {
genero[json[i].Sexo] = ["Masc"];
genero[json[i].Sexo] = ["Fem"];
genero[json[i].Sexo] = ["Desconhecido"];
}
genero[json[i].Sexo].push(json[i].Nome + " " + json[i].Idade + " " + json[i].Localidade);
if (armas[json[i].RecursoArma] == undefined) {
armas[json[i].RecursoArma] = ["Sim"];
armas[json[i].RecursoArma] = ["Não"];
armas[json[i].RecursoArma] = ["Desconhecido"];
}
armas[json[i].RecursoArma].push(json[i].Nome + " " + json[i].Idade + " " + json[i].Localidade);
}
if($('#myselect').val() == "faixaA"){
document.getElementById("demoA").innerHTML = faixas;
}
if($('#myselect').val() == "faixaB"){
document.getElementById("demoA").innerHTML = faixas;
}
if($('#myselect').val() == "faixaC"){
document.getElementById("demoA").innerHTML = faixas;
}
if($('#myselect').val() == "faixaD"){
document.getElementById("demoA").innerHTML = faixas;
}
if($('#myselect').val() == "faixaE"){
document.getElementById("demoA").innerHTML = faixas;
}
if($('#myselect2').val() == "faixaF"){
document.getElementById("demoA").innerHTML = genero;
}
if($('#myselect2').val() == "faixaG"){
document.getElementById("demoA").innerHTML = genero;
}
if($('#myselect2').val() == "faixaH"){
document.getElementById("demoA").innerHTML = genero;
}
if($('#myselect3').val() == "faixaI"){
document.getElementById("demoA").innerHTML = armas;
}
if($('#myselect3').val() == "faixaJ"){
document.getElementById("demoA").innerHTML = armas;
}
if($('#myselect3').val() == "faixaK"){
document.getElementById("demoA").innerHTML = armas;
}
</script>
In VS code it says it has no errors but the code does not read the data in the json that is in another file and appears like this
I’ve changed everything but now instead of appearing the json data appears "[Object Object]"
– David Mv
can put the code as it was in the question?
– Ricardo Pontual