我有一个 jQuery 函数,可以根据用户是否登录来显示各种内容。
该函数位于每个页面中包含的标题中(我在相关页面的标题中尝试了它,结果相同。
id loggedIn 设置为 display:none 并且 jquery 应该在登录后显示它,但它永远不会显示。
我已经使用loggedIn 和loggedOut 进行了测试,但是没有出现,但是head 确实更新了链接,尽管是在刷新之后,这是另一个问题。
在标题中,我必须在链接更改之前刷新页面。
感谢吨的任何帮助。
<script>
$(document).ready(function () {
var loggedIn = <? php echo json_encode($general - > loggedIn()); ?> ;
if (loggedIn == true) {
$("#loggedIn").show();
} else {
$("#loggedOut").show();
}
});
</script>
以下代码中均未显示已登录或已登录的元素。
<p id="loggedOut">YOOOOHOOOOOOO</p>
</div>
<?php
$body = <<<EOT
<div class="viewAndDownload" id="loggedIn">
<a href="../download.php?filename=bla.pdf">Click to download the PDF/>
</div>
EOT;
这是登录框在刷新后才显示的标题中的 HTML:
<nav class = "memberHeaderArea" id="loggedIn">
Links Here
</nav>
<nav class = "memberHeaderArea" id ="loggedOut">
Removed links etc to save space
<input type="submit" name="loginButton" id="loginButton" value="Login!" onclick="validLogin(); return false;"/>
onclick 调用一个ajax函数
function validLogin(){
//removed get username etc
var params = {username: username, password: password};
var url = "../loginProcessAjax.php";
$("#statusLogin").show();
$.ajax({
type: 'POST',
url: url,
data: params,
dataType: 'json',
beforeSend: function() {
document.getElementById("statusLogin").innerHTML= '<img src="../images/loginLoading.gif" /> checking...' ;
},
success: function(data) {
$("#statusLogin").hide();
if(data.success == true){
//$('#loggedIn').show();
$('#loginContent').slideToggle();
//$('#loggedOut').hide();
}else{
// alert("data.message... " + data.message);//undefined
$("#error").show().html(data.message);
}
},
error: function( error ) {
console.log(error);
}
});
}
再次感谢您,这一直困扰着我多年,尽管尝试了很多次,但我还没有找到解决它的方法
编辑:登录功能
public function loggedIn(){
return (isset($_SESSION['id'])) ? true : false;
}//end function