ブラウザーでWebアプリケーションを開きますが、2つの個別のタブでシナリオを作成します。
1つのタブでアプリケーションからサインアウトすると、すべてのセッション値がnullになります。もう一方のタブで、Webアプリケーションのアンカータグをクリックしました。アンカータグのjquery-onクリックイベントで、セッション値を確認しました。ここでは、セッションをnullとして取得することになっています(他のタブからアプリケーションをログアウトしたため)が、ログインしたユーザーとしてセッション値を取得しています(おそらくページの更新が発生しないため)。
私の考えは、jQueryでセッションをチェックし、セッションがnullの場合、アプリケーションをログアウトさせ、そうでなければポップアップページを表示することです。
ここにセッション値を取得するための私のコードがあります
$(".a".click(function(){
var session=var data = '@Session["UserName"]';
if(session!=null){
//Show popup
}
else{
//Show loginpage
}
}))
JQueryで現在のセッション値を取得するにはどうすればよいですか?
セッションはサーバー側のものであり、jQueryを使用してアクセスすることはできません。 Httpハンドラ(セッションIDを共有する場合)を記述し、$.ajax
を使用してそこから値を返すことができます。
別のアプローチはあなたのchtmlにあります
<input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session['someKey']" />
そして、スクリプトは
var sessionValue= $("#hdnSession").data('value');
または、次の方法で直接アクセスできます。
jQuery(document).ready(function ($) {
var value = '@Request.RequestContext.HttpContext.Session["someKey"]';
});
Javascriptを使用したセッション変数へのアクセスと割り当て:
Javascriptを使用したASP.NETセッション変数の割り当て:
<script type="text/javascript">
function SetUserName()
{
var userName = "Shekhar Shete";
'<%Session["UserName"] = "' + userName + '"; %>';
alert('<%=Session["UserName"] %>');
}
</script>
Javascriptを使用したASP.NETセッション変数へのアクセス:
<script type="text/javascript">
function GetUserName()
{
var username = '<%= Session["UserName"] %>';
alert(username );
}
</script>
私が解決した方法は、コントローラーで関数を作成し、jqueryクリックイベントでajax経由でアクセスしたことでした
まず、上記のシナリオを実装する方法のアイデアを提供してくれた@Stefano Altieriに感謝します。セッションの有効期限が切れると、クライアント側から現在のセッション値にアクセスできません。
また、質問を正しく読むことで、質問に慎重に答えることができると言いたいです。
この方法をテストしましたが、うまくいきました。その有用性を願っています。
indexという名前のファイルがあると仮定します。php
ユーザーがログインすると、ユーザー名をphpセッションに保存します。例$ _SESSION ['username'];
あなたはindex.phpファイルでこのようなことをすることができます
<script type='text/javascript'>
var userName = "<?php echo $_SESSION['username'] ?>"; //dont forget to place the PHP code block inside the quotation
</script>
これで、index.phpファイルに配置された別のスクリプトブロック、またはindex.phpにリンクされた.jsファイルで変数serIdにアクセスできます。
例index.jsファイル内
$(document).ready(function(){
alert(userId);
})
データベーステーブルなどを更新するために、ajaxクエリでcookieとして保存されているユーザー名およびその他のユーザーデータを使用できるため、非常に便利です。
javascript変数を使用して情報を含めたくない場合は、「type = 'hidden'を指定して入力を使用できます。
例index.phpファイルに次のように記述します。
<?php echo "<input type='hidden' id='username' value='".$_SESSION['username']."'/>";
?>
ただし、この方法では、ブラウザにページのソースコードを表示するように要求すると、ユーザーは非表示の入力を見ることができます。ソースビューでは、非表示の入力がそのコンテンツとともに表示されます。望ましくないことがあります。
これは私が使用した方法です->
<body onkeypress='myFunction(event)'>
<input type='hidden' id='homepage' value='$_SESSION[homepage]'>
<script>
function myFunction(event){var x = event.which;if(x == 13){var homepage
=document.getElementById('homepage').value;
window.location.href=homepage;}else{
document.getElementById("h1").innerHTML = "<h1> Press <i> ENTER </i> to go back... </h1>";}}
</script>
</body>
C#mvcアプリケーションを使用しています。このようにControllerクラスでセッションを作成しました
string description = accessDB.LookupSomeString(key, ImpDate);
this.Session["description"] = description;
ビューで、セッション値にアクセスし、次のように変数に保存します(これは$ .ajax内ですが、jquery内で動作するはずです)
var Sessiondescription = '@Session["description"]';
alert(Sessiondescription);
<script type="text/javascript">
$(document).ready(function(){
var userId=<%: Session["userId"] %>;
alert(userId);
})
</script>
**Get the current session value in jQuery**
このようにしてみて
var username= "<%= Session["UserName"]%>";
セッションでIDまたはクラスと値を持つ隠しフィールドを取得し、JavaScriptで取得します。
Javascript var session = $( '#session')。val(); // jQueryで取得