Подтвердить что ты не робот

Как получить доступ к переменным сеанса и установить их в javascript?

В кодировке я установил Session с некоторыми данными.

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

И вопрос в том, как я могу получить значение Session (в моем примере, "образцы данных" ) в javascript и установить Session["usedData"] с новым значением?

4b9b3361

Ответ 1

Доступ и назначение переменной сеанса с помощью Javascript:

Назначение переменной сеанса ASP.NET с помощью Javascript:

 <script type="text/javascript">
function SetUserName()
{
    var userName = "Shekhar Shete";
    '<%Session["UserName"] = "' + userName + '"; %>';
     alert('<%=Session["UserName"] %>');
}
</script>

Доступ к переменной сеанса ASP.NET с помощью Javascript:

<script type="text/javascript">
    function GetUserName()
    {

        var username = '<%= Session["UserName"] %>';
        alert(username );
    }
</script>

Ответ 2

Вы не можете получить доступ к Session непосредственно в JavaScript.

Вы можете создать скрытое поле и передать его на свою страницу, а затем использовать JavaScript для извлечения объекта через document.getElementById

Ответ 3

Попробуйте это

var sessionValue = '<%=Session["usedData"]%>'

Ответ 4

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

Для получения значений сеанса, как сказал Шехар и Раджив

var firstName = '<%= Session["FirstName"] ?? "" %>';

Надеюсь, что это поможет.

Ответ 5

Предполагая, что вы имеете в виду "клиентский JavaScript", тогда вы не можете, по крайней мере, не напрямую.

Данные сеанса хранятся на сервере, поэтому клиентский код не может видеть его без связи с сервером.

Чтобы получить доступ к нему, вы должны сделать HTTP-запрос и иметь программу на стороне сервера, изменить/прочитать и вернуть данные.

Ответ 6

Присвоить значение скрытому полю в файле кода. Получите это значение в своем javascript, как обычный HTML-контроль.

Ответ 7

Вы не можете установить переменные сеанса сессии с Javascript. Если вы хотите сделать это, вам нужно создать AJAX POST, чтобы обновить его на сервере, хотя, если выбор автомобиля является основным событием, это может быть просто проще POST.

Ответ 8

Я искал решение этой проблемы, пока не нашел очень простое решение для доступа к переменным сеанса, предполагая, что вы используете файл .php на стороне сервера. Надеюсь, что он ответит на часть вопроса:

значение сеанса доступа

<script type="text/javascript">        
    var value = <?php echo $_SESSION['key']; ?>;
    console.log(value);
</script>

Изменить: лучший пример ниже, который вы можете попробовать на phpfiddle.org, на вкладке "Кодовое пространство"

<!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;

Это должно работать, "не проверял".

Ответ 9

Вы также можете установить переменную в свойстве и вызвать ее из js:

На стороне сервера:

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

И затем в javascript:

alert("The wasFieldEdited Value: <%= wasFieldEditedStatus %>" );

Ответ 10

сначала создайте метод в коде для установки сеанса:

 [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>

Ответ 11

Это чит, но вы можете это сделать, отправьте значение на стороне сбоку в качестве параметра

<script>
var myVar = "hello"
window.location.href = window.location.href.replace(/[\?#].*|$/, "?param=" + myVar); //Send the variable to the server side
</script>

И с серверной части найдите параметр

string myVar = Request.QueryString["param"];
Session["SessionName"] = myVar;

надеюсь, что это поможет

Ответ 12

Если вы хотите прочитать значение сеанса в javascript. Этот код поможет вам.

<script type='text/javascript'> var userID='@Session["userID"]'; </script>