我正在創建一個可以從任何頁面進行登錄的web應用程序。爲了實現這一點,我使用了登錄表單的模式。成功登錄後,我希望用戶保持在同一頁面上。這是我的登錄驗證腳本。網頁界面提交表單後不刷新
$.ajax({
dataType: "json",
type: "POST",
data: {
login: true,
email: cleanScripts($('#username').val()),
password: cleanScripts($('#password').val())
},
url: "plugins/validator.php",
success: function() {
location.reload();
},
error: function() {
$('.error').show();
}
});
在報頭模板(其中i有登錄按鈕)我檢查用戶是否登錄和下方
if (!isset($_SESSION['userIdMain']))
echo '<li>
<a href="#" onclick="showLoginForm();">
<i class="dashicons dashicons-lock"></i>
<span>LOGIN/SIGN UP</span>
</a>
</li>';
else echo '<span>Hi, ' . $_SESSION["userName"] . '</span>';
部首模板作爲給定更新的HTML代碼包括使用
的頁面中<?php include 'templates/header.php' ?>
理想情況下,成功登錄時,頁面應該刷新,而不是LOGIN/SIGNUP按鈕,它應該顯示登錄用戶的名稱。但用戶界面並未更新。即使成功登錄後,頁面也會顯示LOGIN/SIGNUP按鈕。
當我導航到另一個頁面時,它按預期工作。 UI不會更新登錄所在的頁面。任何想法爲什麼發生這種情況?
謝謝
你確定驗證器正在寫入$ _SESSION嗎? –
是的。當我導航到另一個頁面時,它完美地工作。說,我從聯繫頁面登錄。刷新時,聯繫頁面不會更新。當我進入常見問題頁面時,其工作和用戶界面正在更新。 –
好吧,驗證器正在運行,但頁面並不令人耳目一新。你能否確認'success(){}'正在執行?也許把一個控制檯登錄來檢查它 –