コンテンツは、main_content
jQuery Ajax を介して領域に読み込まれます。
main_content
エリア外はlogin
リンクです。
このリンクをクリックすると、フォームがmain_content
エリアに読み込まれ、送信されると Beaker でログイン認証が実行されます。成功すると、管理ページがmain_content
エリアにロードされます。
承認が成功した後 login
、リンクをリンクに変更したい。logout
次のような方法で、ビーカーのセッション ステータスに基づいて div を表示/非表示にする方法はありますか。
if (beaker.session.id) {
$('#login').hide();
$('#logout').show();
}
ログインの成功を扱う jQuery ブロックでこれを呼び出し、ログアウトを扱うブロックの div を交換します。
編集
Firebug では、ログインPOST
応答で、次"Cookies" > "Received Cookies"
のリストにアクセスして表示できます。
beaker.session.id
このリンクを右クリックして を選択する"Use in Command Line"
と、コマンド ライン領域に次のように表示されます。
$p
次に、Firebug コマンド ライン領域で次のコマンドを実行すると、指定されたメッセージが表示されたアラート ポップアップが表示されます。
if ($p) {alert("you have an id!")}
そのため、ログインを処理するコードにこれを追加しようとしましたが、アラートが表示されませんでした:
<script>
$(document).on("submit","#login", function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/login',
data: $(this).serialize(),
dataType: 'json',
success: function(results) {
$("#main_content").html("");
$("#main_content").append(results.content);
href = results.title;
history.pushState('', 'New URL: '+href, href);
reinit1();
reinit2();
reinit3();
if ($p) { // <-- here is the alert
alert("Yes you have an ID!")
}
}
});
});
</script>
エラーが発生します:
ReferenceError: $p is not defined