我有一个来自上一页的会话变量加载,然后我有一个带有选择框的表单,该表允许一个人用他们的名字,名字和姓氏或别名签署一份文件。当选择它时,它会激活以下功能,它可以正常工作......
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变量,但是我的解决方案在所谓的重复问题中不是相同的解决方案。答案 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;
}