2017-02-23 13 views
0

Iveは、特定のタグを隠して表示する際に問題が発生しました。現在作成中のログインシステムのログインとログアウトボタンになります。ログインとログアウトは完璧に機能します。Javascript document.getElementById CSSが動作していませんか?

ログインタグを非表示にすると正常に動作し、ログアウトすると正しく表示されます。しかし、これはログアウトタグでは言えません。実際のページを調べると、私のJavaScriptが完全に無視されているかのように、CSSの変更がないことがわかります。

JavaScriptの機能を持つので、HERESに私のHTML:

<div class="uitlog_inlog"> 
    <a href="login.php" class="navigatieknop_inlog" id="navigatieknop_inlog">Inloggen</a> 
    <a href="loguit.php" class="navigatieknop_uitlog" id="navigatieknop_uitlog">Uitloggen</a> 
    </div> 
    <?php 

     include 'login/inloggen.php'; 
     if(!isset($_SESSION['loggedin']) ==true){ 
      $sessie = session_status(); 
      if($sessie == PHP_SESSION_NONE){ 
       session_start(); 
      } else { 
      } 
     } 

     if(session_status() == PHP_SESSION_ACTIVE){ 
      if(isset($_SESSION['login_user'])){ 
      echo '<div class="welkom">Welkom ' .$_SESSION['login_user'] .'!</div>'; 
       echo "<script type=\"text/javascript\"> 
         document.getElementById('navigatieknop_inlog').style.display = 'none'; 
         document.getElementById('registratieknop').style.display = 'none'; 
         document.getElementById('bewerken').style.display = 'block'; 
         document.getElementById('navigatieknop_uitlog').style.display = 'block'; 
         </script>"; 

     } else { 
      echo "<script type=\"text/javascript\"> 
         document.getElementById('navigatieknop_inlog').style.display = 'block'; 
         document.getElementById('registratieknop').style.display = 'block'; 
         document.getElementById('bewerken').style.display = 'none'; 
         document.getElementById('navigatieknop_uitlog').style.display = 'none'; 
         </script>"; 
     } 
     } 
    ?> 

そしてHERESに私のCSS:

 .navigatieknop_uitlog, .navigatieknop_inlog { 
    border: none; 
    color: white; 
    padding: 10px 15px; 
    text-align: center; 
    text-decoration: none; 
    float: right; 
    font-size: 16px; 
    margin: 4px 2px; 
    cursor: pointer; 
} 

    .navigatieknop:hover, .navigatieknop_end:hover, .navigatieknop_uitlog:hover, .navigatieknop_inlog:hover, .registratieknop:hover, .bewerkenknop:hover{ 
    background-color: black; 
    -webkit-transition: background-color 500ms linear; 
    -moz-transition: background-color 500ms linear; 
    transition: background-color 500ms linear; 
} 
+0

Javascriptが働いています。たぶん、PHPのエコーが何か間違って印刷されている? – Roy

+0

PHPの人ではありませんので、PHPはスクリプト言語ではありません。これは要素がレンダリングされる前にスクリプトを実行しませんか? JS関数を作成し、 'window.onload'で呼び出してください。 – Rajesh

+0

@Rajesh PHPはスクリプトを実行します。ログイン "ボタン"もそこにあり、それは優しく罰金を隠して示しています。私は、作業ログインボタンからコードをコピーしてコピーし、ログアウトボタンのために変更しました。残念なことに、どういうわけかそのdidnt仕事。 – Asbuster

答えて

0

次のことを試してみてください?

<div class="uitlog_inlog"> 
    <a href="login.php" class="navigatieknop_inlog" id="navigatieknop_inlog">Inloggen</a> 
    <a href="loguit.php" class="navigatieknop_uitlog" id="navigatieknop_uitlog">Uitloggen</a> 
</div> 
<?php 

    include 'login/inloggen.php'; 
    if(!isset($_SESSION['loggedin']) ==true){ 
    $sessie = session_status(); 
    if($sessie == PHP_SESSION_NONE){ 
     session_start(); 
    } else { 
    } 
    } 

    if(session_status() == PHP_SESSION_ACTIVE){ 
    if(isset($_SESSION['login_user'])){ 
     echo '<div class="welkom">Welkom ' .$_SESSION['login_user'] .'!</div>'; 
     echo "<script type=\"text/javascript\"> 
       (function() { 
       document.getElementById('navigatieknop_inlog').style.display = 'none'; 
       document.getElementById('navigatieknop_uitlog').style.display = 'block'; 
       //document.getElementById('registratieknop').style.display = 'none'; 
       //document.getElementById('bewerken').style.display = 'block'; 
       })(); 
      </script>"; 
    } else { 
     echo "<script type=\"text/javascript\"> 
       (function() { 
        document.getElementById('navigatieknop_inlog').style.display = 'block'; 
        document.getElementById('navigatieknop_uitlog').style.display = 'none'; 
        //document.getElementById('registratieknop').style.display = 'block'; 
        //document.getElementById('bewerken').style.display = 'none'; 
        })(); 
       </script>"; 
    } 
    } 
?> 
+0

これは機能します!ログインボタンはログインしていないときにうまく表示され、ログインしたときにはログアウトボタンが表示されます。ありがとう!だから私がしなければならなかったのは、スクリプトの中に関数を置くことです。 – Asbuster

+0

Phew!コードを投稿するいくつかの問題がありました。編集したコードも正しく動作していることを確認してください。はい、それはページが読み込まれるときだけ物事をするべきであるようなものです、そして2番目の可能な問題はidによるget要素のほとんどが失敗しているということでした。 – uautkarsh

+0

編集したコードもうまく動作します。あなたはそれに何を変えましたか? – Asbuster

0

ではなく、スタイルクラスを試してみてください、またはあなたが何かを行うことができますjQueryを使ってjQueryの

を使用like:

$('#navigatieknop_inlog').hide() 

または使用するクラス

$('.navigatieknop_inlog').hide() 

または使用してPHP

<div class="uitlog_inlog"> 

<?php 
$_SESSION['loggedin'] = true; 
var_dump($_SESSION['loggedin']); 
if(!checkLoginStatus()){ 
?> 
    <a href="login.php" class="navigatieknop_inlog" id="navigatieknop_inlog">Login</a> 
<?php } 

elseif(checkLoginStatus()){ ?> 
    <a href="loguit.php" class="navigatieknop_uitlog" id="navigatieknop_uitlog">Logout</a> 
<?php } ?> 
</div> 

<?php 

// include 'login/inloggen.php'; 

function checkLoginStatus(){ 
    if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === false) { 
     return false; 
    } 
    else { 
     return true; 
    } 
}   

if(!isset($_SESSION['loggedin']) ==true){ 
    $sessie = session_status(); 
    if($sessie == PHP_SESSION_NONE){ 
     session_start(); 
    } else { 
    } 
} 

if(session_status() == PHP_SESSION_ACTIVE){ 
    if(isset($_SESSION['login_user'])){ 
    echo '<div class="welkom">Welkom ' .$_SESSION['login_user'] .'!</div>'; 
     echo "<script type=\"text/javascript\"> 
       document.getElementById('navigatieknop_inlog').style.display = 'none'; 
       document.getElementById('registratieknop').style.display = 'none'; 
       document.getElementById('bewerken').style.display = 'block'; 
       document.getElementById('navigatieknop_uitlog').style.display = 'block'; 
       </script>"; 

} else { 
    echo "<script type=\"text/javascript\"> 
       document.getElementById('navigatieknop_inlog').style.display = 'block'; 
       document.getElementById('registratieknop').style.display = 'block'; 
       document.getElementById('bewerken').style.display = 'none'; 
       document.getElementById('navigatieknop_uitlog').style.display = 'none'; 
       </script>"; 
} 
} 

>

+0

マークアップをご覧ください。 OPはクラスIDと同じ値を使用しています – Rajesh

+0

これは回答として投稿されましたが、質問に答えようとしません。それはおそらく、編集、コメント、別の質問、または完全に削除されるべきです。 –

+0

@ZakariaAcharkiコメントを追加するのに十分な担当者がいない – Rajesh

関連する問題