我在JSP中有一个包含多项选择测验的表单,每个问题后跟一组带选项的单选按钮,这些是从数据库中提取的,因为问题并不都具有相同数量的选项和在创建表单时添加单选按钮,每个单选按钮都有一个包含文本答案的标签。提交页面时,它会传递给另一个JSP,这里我想从标签中获取文本以便存储,以便我可以检查答案。
这是表单,因此每组单选按钮都根据问题编号给出了名称,并且该组中的每个成员都根据其问题编号和问题中的选项给出了id。
<form class="container" id="quiz" method="post" action="/quizChecker.jsp">
<% for (int i = 0; i < ques_nos.size(); i++) {
String query = "SELECT answer_text, is_correct FROM Quiz_Question_Option WHERE quiz_ques_id = ?";
PreparedStatement prepstmt = con.prepareStatement(query);
prepstmt.setInt(1, ques_nos.get(i));
ResultSet rsq = prepstmt.executeQuery();
rsq.last();
int size = rsq.getRow();
rsq.first();
%>
<p id="ques" class="Question"<%=i%>"><%=questions.get(i)%></p><br>
<% for (int j = 0; j < size; j++) {
%>
<input class="checkmark" type="radio" name="q<%=i%>" id="q<%=i%><%=j%>">
<label for="q<%=i%><%=j%>"><%=rsq.getString(1)%></label><br>
<% rsq.next();
}
}
session.setAttribute("ques", ques_nos);
%>
<button type="submit" value="checkQuiz">Submit Quiz</button>
</form>
这是我试图获取所选按钮的文本值的代码。
<%
ArrayList<String> answers = new ArrayList<~>(5);
for (int i = 0; i < 5; i++) {
String given = request.getParameter("q"+i);
answers.add(given);
}
...
当我添加一个循环来打印出已经添加到答案中的内容时,它返回“ononononon”所以我想我正在访问如果按钮被选中,因为我只会在这里查看所选的单选按钮,我该如何获得而不是标签的价值?
答案 0 :(得分:1)
尝试为所有单选按钮设置一个值
<input class="checkmark" value="answer1" type="radio" name="q<%=i%>" id="q<%=i%><%=j%>">
<input class="checkmark" value="answer2" type="radio" name="q<%=i%>" id="q<%=i%><%=j%>">