2011-08-09 9 views
6

GSPファイルのjavascriptコードでgrails変数値を使用して質問があります。GrailsをGSPサイトのjavascript内で使用する

例:私はセッション値session.getAttribute( "selectedValue")を持っており、この値をjavascriptコードの部分で使用したいと思います。

<% 
    def js = new String("<script type=\"text/javascript\">") 
    js += "var jsSelectedValue = " + session.getAttribute("selectedValue") + ";" 
    js += "</script>" 
    out << js 
%> 

、その後、私はjQueryのスタッフと私のGSP内部javascriptのブロックを持っているように、そこに私は、この値が必要になります。

私のソリューションは、(GSPの内側)になりました。

純粋なjavascriptコード内でgrails変数にアクセスできる別の方法はありますか?

2番目の質問はまったく逆です。たとえば、ドロップダウンボックスで選択して「保存」をクリックすると、JSの部分からセッション変数の中に値$( "#select-box")val()を保存します。

ご協力いただきありがとうございます。

乾杯、

マルコ

+0

上記のコードでは、実際にグレーズ変数を参照しているわけではありません。あなたが実際にやっているのは、テンプレートからJavaScriptコードを生成することです。このテンプレートはサーバー側で処理されるため、セッションにアクセスできます。 –

答えて

12

なぜJavaScriptのGSPタグを使用しないのですか?ソリューションは次のようになります。

<g:javascript> 
    var jsSelectedValue = "${session.selectedValue}"; 
</g:javascript> 
+2

他の誰かが私のやり方と同じように立ち往生するかどうかはわかりませんが、var宣言がsourceパラメータを持つスクリプトとは別のタグにあることを確認してください。 – RasTheDestroyer

1

次のようにあなたの最初の問題を解決するには、次のようになります。

UPDATE:Medrodのソリューション@に従って変更:

<script type="text/javascript"> 
var jsSelectedValue = "${session.selectedValue}"; 
</script> 

とのために2番目の質問:
選択した値をサーバーに送信するセッション変数を設定します。

+0

ありがとうMedrodとZedwal! 答えのために、サーバー(JSON POSTなど)にすべてを送信すると、すべてのスクリプト児童はローカルフォームの値を準備し、準備されたajax投稿とmanipulte ...右か? – grailsInvas0r

関連する問題