我有一個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