コード ビハインドではSession
、いくつかのデータを設定しました。
Session["usedData"] = "sample data";
問題は、JavaScript でセッション値 (私の例では「サンプル データ」) を取得Session["usedData"]
し、新しい値を設定するにはどうすればよいかということです。
コード ビハインドではSession
、いくつかのデータを設定しました。
Session["usedData"] = "sample data";
問題は、JavaScript でセッション値 (私の例では「サンプル データ」) を取得Session["usedData"]
し、新しい値を設定するにはどうすればよいかということです。
Session
JavaScript で直接アクセスすることはできません。
隠しフィールドを作成してページに渡し、JavaScript を使用してオブジェクトを取得できます。document.getElementById
Javascript はセッション値を直接設定できません。javascript からセッション値を設定するには、次のように ajax 呼び出しを行います。
ASPx ファイルまたは html で、
<script type="text/javascript">
$(function(){
//Getting values from session and saving in javascript variable.
// But this will be executed only at document.ready.
var firstName = '<%= Session["FirstName"] ?? "" %>';
var lastName = '<%= Session["LastName"] ?? "" %>';
$("#FirstName").val(firstName);
$("#LastName").val(lastName);
$('Button').click(function(){
//Posting values to save in session
$.post(document.URL+'?mode=ajax',
{'FirstName':$("#FirstName").val(),
'LastName':$("#LastName").val()
} );
});
});
サーバー側では、
protected void Page_Load(object sender, EventArgs e)
{
if(Request.QueryString["mode"] != null && Request.QueryString["mode"] == "ajax")
{
//Saving the variables in session. Variables are posted by ajax.
Session["FirstName"] = Request.Form["FirstName"] ?? "";
Session["LastName"] = Request.Form["LastName"] ?? "";
}
}
ShekharとRajeevが言ったように、セッション値を取得するため
var firstName = '<%= Session["FirstName"] ?? "" %>';
お役に立てれば。
これを試して
var sessionValue = '<%=Session["usedData"]%>'
あなたが「クライアントサイドJavaScript」を意味すると仮定すると、少なくとも直接ではできません。
セッションデータはサーバーに保存されるため、クライアント側のコードはサーバーと通信しないとデータを確認できません。
これにアクセスするには、HTTPリクエストを作成し、サーバー側のプログラムでデータを変更/読み取り、返す必要があります。
コードビハインドファイルの非表示フィールドに値を割り当てます。通常のHTMLコントロールのように、JavaScriptでこの値にアクセスします。
からセッション側のセッション変数を設定することはできませんJavascript
。AJAX
これを行うには、 POSTを作成してサーバー上でこれを更新する必要がありますが、車の選択が主要なイベントである場合は、これをPOSTする方が簡単な場合があります。
最初にセッションを設定するコード ビハインドでメソッドを作成します。
[System.Web.Services.WebMethod]
public static void SetSession(int id)
{
Page objp = new Page();
objp.Session["IdBalanceSheet"] = id;
}
次に、クライアント側から呼び出します。
function ChangeSession(values) {
PageMethods.SetSession(values);
}
EnablePageMethods を true に設定する必要があります。
<asp:ScriptManager EnablePageMethods="true" ID="MainSM" runat="server" ScriptMode="Release" LoadScriptsBeforeUI="true"></asp:ScriptManager>
プロパティに変数を設定して、js から呼び出すこともできます。
サーバー側:
Protected ReadOnly Property wasFieldEditedStatus() As Boolean
Get
Return If((wasFieldEdited), "true", "false")
End Get
End Property
そして、JavaScriptで:
alert("The wasFieldEdited Value: <%= wasFieldEditedStatus %>" );
サーバー側で.phpファイルを使用すると仮定して、セッション変数にアクセスするための非常に簡単な解決策が見つかるまで、この問題の解決策を探していました。質問の一部に答えてくれることを願っています:
アクセスセッション値
<script type="text/javascript">
var value = <?php echo $_SESSION['key']; ?>;
console.log(value);
</script>
編集:以下のより良い例は、phpfiddle.orgの「codespace」タブで試すことができます
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$_SESSION['key'] = 10;
$i = $_SESSION['key'];
?>
</head>
<body>
<p id="affichage">hello</p>
<script type="text/javascript">
var value = <?php echo $i; ?>;
$("#affichage").html(value);
</script>
</body>
</html>
セッション値の設定
任意の変数を渡します。例えば、
$you = 13;
$_SESSION['user_id'] = $you;
これは動作するはずですが、テストしていません。