89

コード ビハインドではSession、いくつかのデータを設定しました。

Session["usedData"] = "sample data";

問題は、JavaScript でセッション値 (私の例では「サンプル データ」) を取得Session["usedData"]し、新しい値を設定するにはどうすればよいかということです。

4

18 に答える 18

27

SessionJavaScript で直接アクセスすることはできません。

隠しフィールドを作成してページに渡し、JavaScript を使用してオブジェクトを取得できます。document.getElementById

于 2013-03-20T09:18:50.603 に答える
15

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"] ?? "" %>';

お役に立てれば。

于 2014-09-23T14:16:34.113 に答える
14

これを試して

var sessionValue = '<%=Session["usedData"]%>'
于 2013-03-20T09:18:35.203 に答える
11

あなたが「クライアントサイドJavaScript」を意味すると仮定すると、少なくとも直接ではできません。

セッションデータはサーバーに保存されるため、クライアント側のコードはサーバーと通信しないとデータを確認できません。

これにアクセスするには、HTTPリクエストを作成し、サーバー側のプログラムでデータを変更/読み取り、返す必要があります。

于 2013-03-20T09:19:19.737 に答える
5

コードビハインドファイルの非表示フィールドに値を割り当てます。通常のHTMLコントロールのように、JavaScriptでこの値にアクセスします。

于 2013-03-20T09:19:10.403 に答える
2

からセッション側のセッション変数を設定することはできませんJavascriptAJAX これを行うには、 POSTを作成してサーバー上でこれを更新する必要がありますが、車の選択が主要なイベントである場合は、これをPOSTする方が簡単な場合があります。

于 2016-04-11T11:38:11.107 に答える
2

最初にセッションを設定するコード ビハインドでメソッドを作成します。

 [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>
于 2016-07-29T08:02:53.060 に答える
1

プロパティに変数を設定して、js から呼び出すこともできます。

サーバー側:

Protected ReadOnly Property wasFieldEditedStatus() As Boolean
    Get
        Return If((wasFieldEdited), "true", "false")
    End Get
End Property

そして、JavaScriptで:

alert("The wasFieldEdited Value: <%= wasFieldEditedStatus %>" );
于 2016-02-03T19:45:55.743 に答える
1

サーバー側で.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;

これは動作するはずですが、テストしていません。

于 2015-11-26T21:50:01.243 に答える