Ajax/jQuery の初心者。これまで試したことはすべて失敗しました。ログインしている場合とログインしていない場合にリンクを表示するための動的ヘッダーがあります。
リンクを表示するために単純な php if else を使用します。
送信 jQuery/Ajax 関数が呼び出されると、ログインがドロップダウンします。成功したら、LoggedOut が何を行うかを非表示にする必要があります。しかし、LoggedIn はそれ自体を表示することを拒否します。
このヘッダーとリンクは常に存在する必要があるため、css で display: none を使用できません。
眉をしかめたり頭を掻いたりするのをやめられるように助けてください:)どうもありがとう。
success: function(data) {
$("#statusLogin").hide();
if(data.success == true){
$('#loggedIn').show(); //GAAAAAAAAAAAH!!!!!
$('#loginContent').slideToggle();
$('#loggedOut').hide();
}else{
// alert("data.message... " + data.message);//undefined
$("#error").show().html(data.message);
}
},
編集: HTML のバルク
<?php if($general->loggedIn()){ ?>
<nav class = "memberHeaderArea" id="loggedIn">
<ul>
<li>
<a href="userProfile.php?username=<?php echo $user['username'];?>">Profile<span class="user icon"></span></a>
</li>
<li>
<a href="userLogout.php">Log out<span class="lock icon"> </span></a>
</li>
</ul>
</nav>
<?php
//toplinks for when not logged in
}else{ ?>
<nav class = "memberHeaderArea" id ="loggedOut">
<ul>
<li id="login">
<a id="loginTrigger" href="#">Login<span class="unlock icon"></span></a>
<div id="loginContent">
<form method="post" action="" id="ourLoginFormID_JS">
<div id="error"></div>
<div class="ourContactFormElement2">
<label for="username">Username:</label>
<input type="text" id="username" name="username" autocomplete="off" class="required" value="<?php if(isset($_POST['username'])) echo htmlentities($_POST['username']); ?>" />
</div>
<div class="ourContactFormElement2">
<label for="password">Password:</label>
<input type="password" id="password" name="password" autocomplete="off" class="required"/>
</div>
<div class="ourContactFormElement2">
<label> </label>
<input type="submit" name="loginButton" id="loginButton" value="Login!" onclick="validLogin(); return false;"/>
</div>
<div id="statusLogin"></div>
</form>
</div>
</li>
<li>
<a href="userRegister.php">Register<span class="adduser icon"></span></a>
</li>
</ul>
</nav>
<?php
}
?>