2

编辑:非常感谢您的所有评论/回复。即使我删除了 JS,只使用 PHP if/else 语句,我仍然会得到同样的错误。

我继续遇到同样的错误:

下面的 2 个 div 是可见的,而一次只能显示其中一个(无论用户是否登录)。

为简单起见,我删除了 2 个 div 中的 html。

<div id="header_wrapper">

<div id="loginbutton"></div>

<div id="menu">
<ul>
<li></li>
<li></li>
<li></li>    
</ul>
</div>

<?php 
if (!isset($_SESSION['id']) || empty($_SESSION['id'])){  ?>

<script>
document.getElementById("menu").style.display = "none";
document.getElementById("loginbutton").style.display = "show";
</script>
<?php }
else {  ?>
<script>
document.getElementById("loginbutton").style.display = "none";
document.getElementById("menu").style.display = "show";
</script>

<?php 
}
?>
</div>

$_SESSION['id'] 不为空。事实上,如果我在页面上回显 $_SESSION['id'],我会得到正确的会话 #。

我错过了什么吗?

4

4 回答 4

3

如果您使用如下 exaple 之类的会话,则可以隐藏 div

<?php if(isset($_SESSION['id'])) { ?><div>div content</div><?php }?>
于 2013-06-27T06:45:12.523 回答
2

如果你把你的 html 放在phpif 块中怎么办,或者必须使用 javascript 你也可以通过使用 only phpthen 为什么要添加 JS来做到这一点

<div id="header_wrapper">
<?php 
if (!isset($_SESSION['id']) || empty($_SESSION['id'])){  ?>
<div id="loginbutton"></div>
<?php }
else {  ?>
<div id="menu">
<ul>
<li></li>
<li></li>
<li></li>    
</ul>
</div>
<?php 
}
?>
</div>
于 2013-06-27T05:54:19.083 回答
1

编辑:

<div id="loginbutton"></div>

<div id="menu">
<ul>
<li></li>
<li></li>
<li></li>    
</ul>
</div>

<?php 
if (isset($_SESSION['id']) && !empty($_SESSION['id'])){  ?>
<script>
document.getElementById("loginbutton").style.display = "none";
document.getElementById("menu").style.display = "show";
</script>
<?php }
else {  ?>

<script>
document.getElementById("menu").style.display = "none";
document.getElementById("loginbutton").style.display = "show";
</script>

<?php 
}
?>
</div>

这应该工作

于 2013-06-27T05:43:26.333 回答
1

改变

.style.display = "show";

.style.display = "block"; 

或者

.style.display = ""; 

改变

<script>

<script type="text/javascript">

在此上下文中没有名为 show 的有效值。如果您有 Firebug(或类似的),请在控制台中检查更多 js 错误。如果没有,请立即下载 :-)

于 2013-06-27T05:45:13.600 回答