如何让Javascript获取Session变量值

时间:2016-03-28 04:38:57

标签: javascript

我有一个来自上一页的会话变量加载,然后我有一个带有选择框的表单,该表允许一个人用他们的名字,名字和姓氏或别名签署一份文件。当选择它时,它会激活以下功能,它可以正常工作......

function jsignature()
{
var nsignature = document.getElementsByName("isignature")[0].value;
var signaturelist = [ "None Selected", "First name", "First & Lastname", "Known As" ];
var osignature = signaturelist[nsignature];   
document.getElementById("esign").innerHTML = osignature;
}

然而,我自然不想要“名字”等字样,我想要实际的名字。

我尝试了以下内容,我在3或4个网站上看到了这个确切问题的答案......

function jsignature()
{
var nsignature = document.getElementsByName("isignature")[0].value;
var fname = '<%=Session["firstname"]%>';
var signaturelist = [ "None Selected", fname, "First & Lastname", "Known As" ];
var osignature = signaturelist[nsignature];   
document.getElementById("esign").innerHTML = osignature;
}

但是输出不是存储在我的会话cookie“firstname”中的值,输出实际上是“&lt;%= Session [”firstname“]%&gt;”

我也试过......

var fname = <%=Session["firstname"]%>;
var fname = %=Session["firstname"]%;
var fname = Session["firstname"];

任何人都可以帮忙吗?

编辑:为了回应“重复”问题,我的问题是关于会话变量而不是PHP变量,即使我的解决方案是PHP变量,但是我的解决方案在所谓的重复问题中不是相同的解决方案。

3 个答案:

答案 0 :(得分:1)

  

我正在使用php,在我的页面顶部,我有$ firstname = $ _ SESSION [&#39; firstname&#39;]; - 我能以某种方式将此转移给JS吗?

?><script type="text/javascript">
  var firstname = <?php echo json_encode($firstname); %>;
</script><?php

答案 1 :(得分:1)

您无法使用Jquery访问会话。因为Session在服务器端,而Jquery在客户端工作。

您可以做的是将会话存储在隐藏字段中,然后使用Jquery访问它。

下面的代码是razor存储值隐藏字段:

<input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session["someKey"]" />

您可以使用Jquery获取值:

var sessionValue= $("#hdnSession").data('someKey');

如果你想在加载时获得会话值,那么它可以作为

var someKey = '@Request.RequestContext.HttpContext.Session["someKey"]';

注意::加载页面后,您无法使用jquery获取会话值。但你可以在负载上获得它的价值。

答案 2 :(得分:0)

感谢Amadan,你激励我......这完美无缺......

function jsignature()
{
var nsignature = document.getElementsByName("isignature")[0].value;
var firstname = "<?php echo $firstname; ?>";
var bothnames = "<?php echo $firstname." ".$lastname; ?>";
var knownas = "<?php echo $knownas; ?>";
var signaturelist = [ "None Selected", firstname, bothnames, knownas ];
var osignature = signaturelist[nsignature];   
document.getElementById("esign").innerHTML = osignature;
}