2

編集:すべてのコメント/返信に感謝します。JS を削除して PHP の if/else ステートメントのみを使用しても、同じエラーが発生します。

私は同じエラーに遭遇し続けます:

以下の 2 つの div は表示されますが、一度に表示されるのは 1 つだけです (ユーザーがログインしているかどうかに関係なく)。

簡単にするために、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

2

html をphpif ブロック内に配置する場合、または JavaScript を使用する必要がある場合は、phpJS を追加する理由のみを使用してそれを行うことができます。

<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-errors を確認してください。そうでない場合は、すぐにダウンロードしてください:-)

于 2013-06-27T05:45:13.600 に答える