2012-01-18 16 views
1

私はこのようなラジオボタングループがあります。radioGroupのユーザー選択値をアクションに渡すにはどうすればよいですか?

<g:radioGroup name="myGroup" values="[1,2,3]" value="1" > 
<p><g:message code="${it.label}" />: ${it.radio}</p> 
</g:radioGroup> 

は、このビューでquestionsの名前と言うことができますが。ユーザーはこれから任意の回答を選択し、calculateという名前のボタンをクリックします。彼はcalculateという別のアクションにリダイレクトされます。今、このアクションでは、questionsページからユーザーが選択した回答を得る方法はありますか?

実際にはquestionsビューページで70以上の質問があります。それらをどのように管理するのですか?助言がありますか?

ありがとうございます。

def calculate() { 
    def answer = params.myGroup 
} 

私は、このような、例えば「質問」に加えて、その指標として、より意味のある名前にmyGroupの名前を変更することをお勧め:

答えて

1

答えがmyGroupパラメータになりますあなたの例をマッチングquestion1question2などを使用して、質問のラジオグループを区別します。

def calculate() { 
    def questions = ... //list of questions rendered previously 
    questions.eachWithIndex { question, i -> 
    question.answer = params["question$i"] 
    } 
} 

はもちろん、質問回答割り当てブロックがあなたの固有のロジック/データモデルによって異なります。これは、すべてのリクエストパラメータを反復処理し、それに応じて答えを割り当てることができます。

+0

お寄せいただきありがとうございます。これはGrailsのドキュメントから抜粋したコードです。 –

+0

2番目のコードでは、 'def questions = ... //以前にレンダリングされた質問のリスト'という行を理解できましたか?それはどういう意味ですか? –

+1

私はあなたがquestions.gspの一連の質問を反復したと思っています。答えに応じて割り当てるには、あなたの計算アクションで同じ一連の質問が必要です。 「以前にレンダリングされた」とは、あなたの意見がどこに表示されたのかという質問だけでした。答えは – david

関連する問題