2012-01-18 87 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多个问题。我如何管理这些?有什么建议么?

在此先感谢。

回答

1

匹配您的例子,答案将在myGroup参数:

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

我建议重命名myGroup到一个更有意义的名称,如“问题”加上其指数如question1,question2等来区分问题的无线电组。这使您可以遍历所有请求参数,并相应地分配答案:

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

当然问题回答分配块取决于特定的逻辑/数据模型。

+0

感谢您的建议。这是我为了举例而从Grails doc中获取的代码。 – 2012-01-18 05:40:39

+0

在你的第二个代码中,'def questions = ... //以前呈现的问题列表'我可以理解这一点吗?你那是什么意思? – 2012-01-18 05:44:46

+1

我猜你已经在questions.gsp中迭代了一组问题。要分配相应的答案,您需要在计算操作中使用同一组问题。用“..先前提示”我只是指在你的视图中显示的问题。 – david 2012-01-18 06:21:45

相关问题