Как получить доступ к переменным сеанса и установить их в javascript?
В кодировке я установил Session
с некоторыми данными.
Session["usedData"] = "sample data";
И вопрос в том, как я могу получить значение Session (в моем примере, "образцы данных" ) в javascript и установить Session["usedData"]
с новым значением?
Ответы
Ответ 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>