Estou tentando ocultar um deste menu suspenso quando o usuário faz login ou logout, eu uso $_Session
para saber se o usuário está logado. Algo está errado com meu JavaScript. Espero que alguém possa ajudar. Aqui está o meu código:
Os dois menus suspensos que quero ocultar / mostrar:
<li class="dropdown" id="account" >
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Account
<b class="caret"></b>
</a>
<ul class="dropdown-menu" >
<li><a href="#">Login</a></li>
<li class="divider"></li>
<li><a href="#">Register</a></li>
</ul>
<li class="dropdown" id="user">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<?php
if(isset($_SESSION["username"])) {
echo " ".htmlentities($_SESSION["username"], ENT_QUOTES, "utf-8");
}
?>
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<li class="divider"></li>
<li><a href="#">Logout</a></li>
</ul>
E aqui está o meu código JavaScript:
<script type="text/javascript">
if (isset($_SESSION["username"])) {
$("#user").show();
$("#account").hide();
} else {
$("#user").hide();
}
</script>
Respostas:
0 para resposta № 1Você pode usar o PHP para incluir uma classe na div que deseja, assim você pode não precisar de javascript e / ou jQuery
<li class="dropdown <?php if(isset($_SESSION["username"])){echo "notvisible";} ?>" id="account" >
E use a classe com CSS para definir
.notvisible { display:none; }
Você também pode usar um .toggleclass () ou outro meio de ocultar / mostrar o menu posteriormente, se desejar.
Outra maneira seria ecoar o menu que você deseja com o PHP, por exemplo:
<?php
if(isset($_SESSION["username"])) {
echo "<li class="dropdown" id="account>"" >>> and whatever you want
} else {
echo "<li class="dropdown" id="account">" Hello user".$_SESSION["username"]."And whatever else"
}
?>