当前位置: 首页 > 知识库问答 >
问题:

使用jsp(Java)数组和复选框

华欣荣
2023-03-14

我正在创建一个程序,首先,用一个由用户设置的数字,它在屏幕上创建一周中几天的数组,带有一个复选框。([]是一个复选框)。

示例:

如果用户选择了数字2,则会出现2行:

第一周:星期一[X]星期二[X]星期三[X]星期四[]自由日[]星期六[]星期日[]。

第2周:星期一[]星期二[X]星期三[X]星期四[X]免费日[]星期六[]星期日[]

然后,在第二页,我想显示用户有点击到的日子。大概是这样的:

在第1周选择的日子:星期一、星期二、星期三。

第二周选定的日子:星期二、星期三、星期四。

但是...用这段代码,我得到了这样的东西,我不想要它…:

周:1-星期一-

周:2-星期二-

周:3-周三-

周:4-星期二-

周:5-周三-

周:6-星期四-

我该怎么解决呢?

谢谢你!

 if(request.getParameter("number")!=null)
        {  
            String number;
            int number2;
            number=request.getParameter("number");
            number2=Integer.parseInt(number);
            out.println("<form action='ex2c.jsp' method='get'>");
            String[] dias = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
            for (int i=0; i<number2; i++)
            {
                out.print("<br>");
                out.println("Week: "+i+1+" - " ); 

                for(int j=0; j<7; j++)
                {

                    out.println("<input type='checkbox' name='check' value='"+dias[j]+"'>"+dias[j]+"</input>");    
                }
            } 
                out.println("<br><br><input type='submit' name='ok'/></form>"); 
        }
   if(request.getParameter("ok")!=null)
    {  
       // String num=request.getParameter("number");
       // String [] number;
        String [] number = request.getParameterValues("check");

        out.println(number.length);
        out.println("<br />");
        for (int i=0;i<number.length;i++)   
        {
            out.println("<br><br>Week: "+i+1+" - " );
            out.println(number[i]+"--");

            for(int j=0; j<2; j++)
            {

                //out.println(number[j]+"--") ;   
            }

        }


        }

共有1个答案

麹繁
2023-03-14

您将以相同的形式发送周的所有天数,而不区分周,您将所有天数放入输入中,name=“check”并以string[]number=request.getParameterValues(“check”);的形式接收。

问题是,您发送第1周星期一、星期二、星期三第2周星期二、星期三、星期四是因为您正在创建:

<form action='ex2c.jsp' method='get'>
   <input type='checkbox' name='check' value='Monday'>Monday</input>
   <input type='checkbox' name='check' value='Tuesday'>Tuesday</input>
   ...
   <input type='checkbox' name='check' value='Sunday'>Sunday</input>
   <input type='checkbox' name='check' value='Monday'>Monday</input>
   <input type='checkbox' name='check' value='Tuesday'>Tuesday</input>
   ...
   <input type='checkbox' name='check' value='Sunday'>Sunday</input>
   <input type='submit' name='ok'/>
</form>

因此,当您提交此表单时,通过此代码string[]number=request.getParameterValues(“check”);您得到的是:[“monday”,“tesday”,“mesday”,“tesday”,“tesday”,“tesday”,“tesday”,“tesday”]

如果您想在第二个JSP中显示用户在第一个JSP中检查的天数,您必须找到一种方法对特定周中的天数进行分组,并将此信息发送到服务器,以便它们能够区分不同的天数。

您可以尝试使用number参数将_number添加到您的姓名输入中,并将此number表单一起发送,以根据您的代码检查打印的周数:

第一个JSP:

if(request.getParameter("number")!=null)
{  
   String number;
   int number2;
   number=request.getParameter("number");
   number2=Integer.parseInt(number);
   out.println("<form action='ex2c.jsp' method='get'>");
   // ADDS THE INPUT WITH WEEKS
   out.println("<input type='text' name='weeks' value='" + number + "'>");
   String[] dias = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
   for (int i=1; i<=number2; i++)
   {
       out.print("<br>");
       out.println("Week: "+ i + " - " ); 

       for(int j=0; j<7; j++)
       {
          // ADD THE WEEK NUMBER IN THE NAME
          out.println("<input type='checkbox' name='check_" + i + "' value='"+dias[j]+"'>"+dias[j]+"</input>");    
       }
    } 
    out.println("<br><br><input type='submit' name='ok'/></form>"); 
}

这样,您就生成了如下内容:

<form action='ex2c.jsp' method='get'>
   <input type='text' name='weeks' value='2'>
   <input type='checkbox' name='check_1' value='Monday'>Monday</input>
   <input type='checkbox' name='check_1' value='Tuesday'>Tuesday</input>
   ...
   <input type='checkbox' name='check_1' value='Sunday'>Sunday</input>
   <input type='checkbox' name='check_2' value='Monday'>Monday</input>
   <input type='checkbox' name='check_2' value='Tuesday'>Tuesday</input>
   ...
   <input type='checkbox' name='check_2' value='Sunday'>Sunday</input>
   <input type='submit' name='ok'/>
</form>

然后您的第二个JSP:

if(request.getParameter("ok")!=null)
{  
   int weeks =Integer.parseInt(request.getParameter("weeks"));
   for(int i=1;i<=weeks;i++){
      out.println("<br><br>Week: "+ i +" - " );
      String [] days = request.getParameterValues("check_"+i);     
      for(int j=0;i<days.length;j++)   
      {
         out.println(days[j] + " ");      
      }
      out.println("<br />");
   }
}

我不尝试这个代码,但我认为这个想法是可行的。此外,我想评论一下,您呈现JSP的方式在我看来非常奇怪。

希望这有帮助,

 类似资料:
  • 问题内容: 我正在尝试创建一个显示带有复选框的简单表单的servlet,当用户选择所需数量的复选框并单击“确认”我的servlet中的POST请求时,将检查哪些复选框已选中并基于数据库查询数据库。 。 我不确定如何在Java中执行此操作,因为用户可以选择1个或多个复选框。如果有人可以用一个小的例子来解释这一点,那将是很好的。 我是编程的新手,如果我知道怎么做的话,会提供代码片段。 问题答案: 这实

  • 问题内容: 我有以下代码,通过检查球员的裤子大小复选框,尝试对阵列中的球员进行过滤。 我知道我在转发器中有数据数组,然后在数据数组元素(两个不同的div)之外的元素中过滤输入,这可能是导致断开连接的原因吗?因为当我将复选框添加到Repeater元素时我注意到,所以当我单击复选框时,确实会得到某种形式的反馈数组。 绑定搜索输入框非常容易实现,但是我花了太多时间获取这个简单的复选框来过滤数据。 因此,

  • 在这里,表的id是从删除按钮传递的。但我无法从数据库和表中删除该记录。代码如下:

  • 我在尝试反转数组时遇到麻烦,它一直在打印这条消息,您可以帮助找出我做错了什么吗? 如果输入为: 则输出为:

  • 问题内容: 我目前正在使用一个必须能够选中/取消选中复选框的系统。每当它更改状态时,我都需要进行jquery并调用ajax来更新页面。 我的问题是-我该怎么做,以便更新? 提前致谢。 问题答案: 例如,您可以这样做: 首先,您必须查看该复选框是否已选中: 您可以通过Ajax加载特定的内容:

  • 问题内容: 我在这里查找了一些示例,但是其中许多示例要么太高级以至于无法掌握PHP,要么它们的示例过于针对自己的项目。我目前正在努力处理PHP表单的非常基本的部分。 我正在尝试创建一个带有几个复选框的表单,每个复选框分配一个不同的值,我希望将这些复选框发送到一个变量(数组?),以便以后可以回显/使用,在我的情况下,我将在其中发送已检查的值一封电邮。 到目前为止,我已经尝试了一些变体,但是最接近的是