繁体   English   中英

提交多个复选框时出错

[英]error submitting multiple checkboxes

我在我的jsp中使用此代码片段:

<%
    String q3 = request.getParameter ("checkbox1");
    session.setAttribute("q3", q3);
%>

这将从这些复选框中获取值

<p> Which of the following are associated with Threading? Select two </p>
    <input type="checkbox" name="checkbox1" value="LiveLock">LiveLock<br>
    <input type="checkbox" name="checkbox1" value="Stack Overflow">Stack Overflow<br>
    <input type="checkbox" name="checkbox1" value="Heap">Heap<br>
    <input type="checkbox" name="checkbox1" value="Starvation">Starvation<br>
             <input type="submit" value="Next" >

或更确切地说,那就是它应该做什么。 但是当我抓住这些值并按原样打印出来时

<p>Good day <%= session.getAttribute("uname") %> </p>
<p>For question 1 you chose <%= session.getAttribute("q1") %> </p>
<p>For question 2 you chose <%= session.getAttribute("q2") %> </p>
<p>For question 3 you chose <%= session.getAttribute("q3") %> </p>
<p>For question 4 you chose <%= session.getAttribute("q4") %> </p>

q1,2,4的单选按钮可以正常工作。 该复选框将仅返回选中的第一个值。 首先出现的值,即如果我选择“ Heap”然后选择“ Livelock”,则在打印输出中将显示“ LiveLock”

您应该使用request.getParameterValues()而不是request.getParameter(),因为复选框名称相同。

请记住, getParameterValues()返回数组,因此您必须执行

  String q3[] = request.getParameter ("checkbox1");

并为获取值迭代如下

for(String s:q3)
{
System.out.println(s);
}

在浏览器中打印

你可以做

for(String s:q3)
    {
    out.println(s);
    }

使用request.getParameterValues获取多个复选框选择:

String[] q3 = request.getParameterValues ("checkbox1");

在会话中存储:

session.setAttribute("q3", request.getParameterValues("checkbox1"));

遍历以显示值:

<p>Good day <%= session.getAttribute("uname") %> </p>
<p>For question 1 you chose 
    <%String[] ans = (String[])session.getAttribute("q3");
    for(String chkd : ans) {
        out.print(chkd);
        out.print(", ");
    }%>
</p>

注意:不建议使用小本票。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM