我有一个jQuery函数来显示各种事情,取决于用户是否登录。jQuery .show()无法工作,直到刷新
的功能是在其被包括在每一个网页(I尝试过的页面的头部内具有相同的结果的问题
的ID的loggedIn被设定为显示的标题:无和jquery的应显示一次登录,但它从来不会。
我既的loggedIn和loggedOut但幽冥测试出现,但头不更新链接,尽管在刷新后,这就是另一个问题。
在页眉,我必须在链接更改之前刷新页面。
非常感谢吨的帮助。
<script>
$(document).ready(function() {
var loggedIn = <? php echo json_encode($general - > loggedIn()); ?> ;
if (loggedIn == true) {
$("#loggedIn").show();
} else {
$("#loggedOut").show();
}
});
</script>
既不的loggedIn或loggedOut元件的显示在下面的代码。
<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
'console.log'中是否有错误? –
@DKM - 不,根本没有。 – user2608855
你正在检查如果PHP输出是真/假,但你不打印出bollean(JSON编码部分)。这是打算?你不能通过一个bollean从PHP到这样的JavaScript – Skarlinski