I developed a PHP code that queries a table in the database and inserts the values into a select
into the HTML.
Since the user does not find the desired option within this select
, he should select the "Instituição não encontrada"
option and then a label (id="lblCadastrarInstituicao")
and a input (id="cadastrarInstituicao")
should no longer be hidden. If the user selects the "Instituição não encontrada"
option and then switches to another option, the label
and input
that I mentioned should return to hidden mode.
I have a similar function on another page and it works normally, the only difference is that the other page does not query that database. On this page the code is working differently in different browsers, even though I am not caching.
In Mozilla Firefox, the system drops label
from hidden mode, but input
does not. If I switch to an option other than "Instituição não encontrada"
, label
does not return to hidden mode.
InGoogleChrome,thesystemisnottakingneitherthelabel
northeinput
ofthehiddenmode,regardlessoftheoptionselected.
IhavereviewedseveralStackOverflowPTpublicationsandothersitestounderstandwhatiswrong,butIhavenotbeenabletoidentifytheproblem.
BelowistheJavaScriptfunction:
functioncadastrarInstituicao(){//AbreafunçãoquemostraocampoCadastrarInstituicaoseaopção"Instituição não encontrada" no select instituicao.
var instituicao = document.getElementById("instituicao").value;
if (instituicao === 'novaInstituicao') {
document.getElementById("cadastrarInstituicao").style.display = "block";
document.getElementById("lblCadastrarInstituicao").style.display = "block";
} else {
document.getElementById("cadastrarInstituicao").style.display = "none";
document.getElementById("lblCadastrarInstituicao").style.display = "none";
}
}//Fecha a função
PHP / HTML code:
<label for="instituicao">A unidade pertence a qual instituição?</label>
<select name="instituicao" id="instituicao">
<!-- Transforma o valor da variável $instituicao em um array e armazena esse array na variável $while. Será criado um option para cada registro na tabela instituicao. -->
<?php while($while = $instituicao->fetch_array()) { ?>
<option value="<?php echo $while["id_instituicao"]?>" onclick="cadastrarInstituicao();"> <?php echo $while["nome"]?> </option>
<?php }?>
<!-- Fazer com que ao selecionar "Cadastrar nova Instituição" seja ativada a função cadastrarInstituicao().-->
<option id="novaInstituicao" value="novaInstituicao" onclick="cadastrarInstituicao();">Instituição não encontrada</option>
</select><br>
<label id="lblCadastrarInstituicao" for="CadastrarInstituicao" style="display: none;">Cadastrar Instituição</label>
<input type="text" name="cadastrarInstituicao" id="cadastrarInstituicao" style="display: none;"><br><br>