2016-11-02 8 views
2

ログインmysqlテーブルには、アカウントタイプの列があります。ユーザーがManagerアカウントタイプを持っている場合は、管理メニュー項目を表示したい場合は非表示にします。ユーザーアカウントに応じてメニュー項目を非表示

これは非常に単純ですが、その作業はありません:

私のヘッダーでは、私は次のようにあります

<script> 
var logged_in_account_type = "<?php echo $_SESSION['account_type'] ; ?>"; 
    if(logged_in_account_type === "Manager") {    
     document.getElementById('management_menu').style.display = 'block'; 
    } else { 
     document.getElementById('management_menu').style.display = 'none';       
    } 
</script> 

私が持っているだけでなく、エコーなしで試してみました。

<div id="management_menu" style="display:none"> 
    <li> 
    <a href="index.php"><i class="menu-icon fa fa-dashboard"></i><span class="mm-text">Dashboard</span></a> 
    </li> 
</div> 

enter image description here

​​

<div class="text-bg"><span class="text-slim">Welcome,</span> <span class="text-semibold"><?php echo $_SESSION['account_type'] ?></span></div> 
+0

「作業していない」とはどういう意味ですか?メニューは常に表示されますか?メニューは決して表示されませんか? –

+0

ログインしているアカウントに関係なく、メニューは常に非表示になります。 – JCD

+0

'$ _SESSION ['account_type']'はどのように見えますか?あなたがしたと思った価値を保存していないことだけかもしれません。 –

答えて

3

場合は、あなたのメニューをレンダリングしながら、あなたは、PHP を使用してみましたか?このようなもの:

<?php if($_SESSION['account_type'] == 'Manager'): ?> 
<div id="management_menu"> 
<ul> 
    <li> 
    <a href="index.php">Dashboard</a> 
    </li> 
    <li> 
     <a href="index.php">Users</a> 
    </li> 
    </ul> 
</div> 
    <?php endif; ?> 
+1

私はPHPを使用して+1しました –

+0

これははるかに簡単な解決策です、あなたの時間をありがとう。 – JCD

+0

@JCD問題ではありません、うれしく思います。 [Twig](http://twig.sensiolabs.org/)以上のLaravelの[Blade](https://laravel.com/docs/5.3/blade)のようなテンプレートエンジンを使用することをお勧めします。しかし、あなたがLaravelに切り替える準備ができていない場合、まだ小枝はうまくいくでしょう。 – Mihailo

0

文書内のJavaScriptコードはどこですか?あなたのjavascriptコードが文書の一番上にある場合、<div>要素が適切に表示または非表示になりますが、<div>要素が文書の最下部にあるため、その「スタイル」には隠されています。

以下のの要素を<div>要素に移動することで、これはあなたの持つ「実行順序」の問題を解決します。例:

<div id="management_menu" style="display:none"> 
    <li> 
    <a href="index.php"><i class="menu-icon fa fa-dashboard"></i><span class="mm-text">Dashboard</span></a> 
    </li> 
</div> 

<?php 
session_start(); 
$_SESSION['account_type'] = "Manager"; 
?> 

<script> 
var logged_in_account_type = "<?php echo $_SESSION['account_type'] ; ?>"; 
    if(logged_in_account_type === "Manager") {    
     document.getElementById('management_menu').style.display = 'block'; 
    } else { 
     document.getElementById('management_menu').style.display = 'none';       
    } 
</script> 
+1

それはそれでした。ありがとうございました – JCD

関連する問題