2016-03-28 19 views
0

私は以前のページからセッション変数を読み込みました。次に、自分の名前、最初と最後のどちらかで文書に署名できるようにする選択ボックス姓、またはエイリアス。それを選択した場合、それはあるとして正常に動作し、以下の機能を活性化...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; 
} 

しかし、当然私は言葉「ファーストネーム」などをしたくない、私は実際の最初の名前をしたいです。

私は

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

...私は3つのまたは4のウェブサイト上でこの正確な問題への答えとして見られている、次のことを試してみましたが、出力は私のセッションクッキー「FIRSTNAME」に保存された値ではありませんでした出力は

私も試してみた...

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

することができます誰も助け、実際に "<% =セッション[" ファーストネーム "]>%" してくださいでしたか?

EDIT:私の解決策はPHP変数であったにもかかわらず、 "重複"問題に対処するために、私の質問はPHP変数ではないセッション変数に関するものでしたが、私の解決策は疑わしい重複問題では同じ解決策ではありません。

+0

セッションはサーバー側の概念である...完璧に動作します。値を抽出してクライアントに*送ることができます。あなたのJavaScriptファイルは(あなたが名前を付けなかった)サーバー側のテンプレート言語で処理されていない(明らかに、それは普通のケースです)。 – Pointy

+0

私はPHPを使用しています。私のページの一番上には、$ firstname = $ _ SESSION ['firstname'];があります。 - これを何とかJSに転送できますか? – Snaggletooth

+0

[JavaScriptでPHP変数にアクセスする]の複製があります(http://stackoverflow.com/questions/4287357/access-php-variable-in-javascript) – Alexei

答えて

1

私はPHPを使用しています。私のページの一番上には、$ firstname = $ _ SESSION ['firstname'];があります。 - これを何とかJSに転送できますか?

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

アマダンさん、ありがとうございました。しました... var fname = "<?php echo $ firstname;?> "; – Snaggletooth

+0

具体的には機能しませんでしたか?変数に引用文字が含まれているか、バックスラッシュで終わっていればソリューションは壊れます... – Amadan

+0

変数は入力時に消去され、文字とハイフンのみが名前に許可されます – Snaggletooth

1

あなたはjqueryのを使用してセッションにアクセスすることはできません。 Sessionはサーバー側にあり、Jqueryはクライアント側で動作するためです。

あなたができることは、セッションを非表示フィールドに保存してからJqueryを使用してアクセスすることです。コードの下

がストア値隠しフィールドにかみそりのためである:あなたが負荷にセッション値を取得したい場合などにその可能その後、

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

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

あなたはとしてjqueryのを使用して値を取得することができます

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

注:ページがロードされると、jqueryを使用してセッション値を取得できません。しかし、あなたは負荷でその価​​値を得ることができます。

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; 
} 
関連する問題