怎么把forEach循环出来的多个radio,提交到后台,并将它存入数据库,急,请大家帮忙,谢谢!

<form action="/institutions/answerServlet" method="post">
<table width="970" height="132" border="0" align="center" cellspacing="0"style="border:1px solid #0099FF" >
<c:forEach items="${paper.topics}" var="topics">
<tr><td width="48"> <input type="radio" name="answerResult" id="a1" value="A" /> A. ${topics.topicOptionA}</td> </tr>
<tr> <td width="48"> <input type="radio" name="answerResult" id="a1" value="B" /> A. ${topics.topicOptionB}</td></tr>
<tr> <td width="48"> <input type="radio" name="answerResult" id="a1" value="C" /> A. ${topics.topicOptionC}</td></tr>
<tr><td width="48"> <input type="radio" name="answerResult" id="a1" value="D" /> A. ${topics.topicOptionD}</td></tr>
</c:forEach>
<tr> <td width="48"> <input type="submit" value="交卷"/></td></tr>
</table></form>

第1个回答  2012-11-29
你页面写的有问题.
循环出来一整页的radio name都叫answerResult
根据radio的特性.这些radio只能选中一个的.
你后台只能获取到1个answerResult.
这样比较好
<c:forEach items="${paper.topics}" var="topics" varStatus="status">
<tr><td width="48"> <input type="radio" name="answerResult${status.index }" value="A" /> A. ${topics.topicOptionA}</td> </tr>
<tr> <td width="48"> <input type="radio" name="answerResult${status.index }" ivalue="B" /> A. ${topics.topicOptionB}</td></tr>
<tr> <td width="48"> <input type="radio" name="answerResult${status.index }" value="C" /> A. ${topics.topicOptionC}</td></tr>
<tr><td width="48"> <input type="radio" name="answerResult${status.index }" value="D" /> A. ${topics.topicOptionD}</td></tr>
</c:forEach>

后台
//获取所有参数Map
Map map = request.getParameterMap();
//循环Map
Set<String> key = map.keySet();
for (Iterator it = key.iterator(); it.hasNext();) {
String s = (String) it.next();
//以answerResult开头的参数就是结果,第几题可以去判断后面跟的数字

if(s.startWith("answerResult")){
System.out.println("第"+s.replace("answerResult","")+"题的结果是:"+map.get(s).toString());
}

}追问

非常感谢!我的后台原来是通过Servlet插入数据库
Answer answer=new Answer(); Integer uid= new Integer(request.getParameter("uid"));
Integer pid= new Integer(request.getParameter("pid")); Integer tid=new Integer(request.getParameter("tid")); answer.setUsers(users); answer.setTopic(topic); answer.setPaper(paper);answer=abiz.AnswerAdd(answer);用merge保存
现在应该怎么弄

后台怎么获取不同Repeater中选中的RadioButton值啊?
只能是遍历RepeaterItem来FindControl找到input 控件并判断所选 伪代码 string selectedVal=string.Empty;foreach(RepeaterItem item in Repeater1.Items) { \/\/注意,你需要给Repeater中的input加上runat=server ,并将数据库中的值赋给value属性 HtmlInputRadioButton btn=item.FindControl("rx") as HtmlIn...

...问卷里的子控件,将填写问卷的结果全部录入数据库中?(C#)
这个要略微复杂一点,假如问卷有单选和多选两种题型,建议用两个gridview来显示,根据题目类型,题目标记选择,用户类型来执行select语句,这个不难吧,然后在单选题的gridview里加一列RadioButtonList标记A,B,C多选题的gridview里加一列CheckBoxList标记A,B,C,这样用户就可以答题了,问卷提交, 提交到数据库的...

菜鸟求助PHP字符替换的问题
\\[\\\/hidden\\]\/",'\\\\1\\\\2 ',$Text); 正则表达式太强大了,功能太多了,我自己还没完全弄清,学习了正则表达式,你编辑的字符串编程能力会大大提高的,建议你去看一些教程,网上很多的 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 百度网友c67c98046 2007-09-09 · TA获得超过517个赞 知道小有...

相似回答