0

学生の出席を取るページがあります。各生徒の横にチェックボックスがある生徒リストを印刷します。次に、[送信] をクリックして、選択した学生の ID とラボ ID をデータベースに送信します。

私が抱えている問題は、最後にチェックされたボックスをデータベースに送信し、残りのボックスを送信しないことです。以前のものを上書きすると想定していますが、この問題をどのように修正できるかわかりません。

これが私のdoPost方法です:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


            int user_id = Integer.parseInt((String)request.getParameter("user_id"));
            int lab_id =  Integer.parseInt((String)request.getParameter("lab_id"));


              System.out.println("I got a blow job");

              String message = null; 
              try {
                  Class.forName("com.mysql.jdbc.Driver");
                  Connection con = 
                    DriverManager.getConnection("jdbc:mysql://localhost:3306/wae","root","");
                System.out.println("got connection"); 

                Statement s = con.createStatement(); 

                String sql = "INSERT INTO user_lab" + 
                          " (user_id, lab_id)" + 
                          " VALUES" + 
                          " ('" +  user_id + "'," + 
                             " '"  +  lab_id + "')"; 

                  System.out.println(sql);
                  int i = s.executeUpdate(sql); 
                  if (i==1) {
                    message = "Successful attendance."; 
                    response.sendRedirect("Tutor_labs");
                  } 

                  s.close(); 
                  con.close(); 
                } 
                catch (SQLException e) {
                  message = "Error." + e.toString(); 
                  boolean error = true; 
                } 
                catch (Exception e) {
                  message = "Error." + e.toString(); 
                  boolean error = true; 
                } 
                if (message!=null) {
                  PrintWriter out = response.getWriter(); 
                  out.println("<B>" + message + "</B><BR>"); 
                  out.println("<HR><BR>"); 
                } 

              } 

    }

ここに私のJSPページがあります:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Mars University Lab System</title>
    <link rel="stylesheet" href="style.css" type="text/css" media="screen">
</head>

<body>
<jsp:include page="headerTutor.jsp"/>

<div id = "centrecontent">
<h3>Students In Tutorial</h3>
<h2>Attendance List</h2>

<%
    String[] list1 = (String[])request.getAttribute("res1");
    String[] list2 = (String[])request.getAttribute("res2");
    String[] list3 = (String[])request.getAttribute("res3");
    String[] list4 = (String[])request.getAttribute("res4");

         if(null == list1){%>

<th>Uni Id</th><th>Name</th><th>Email</th>      
<% 
         }else{ %>

        <form name="ViewStudentsTutor" ACTION="http://www.crackman.net.au/ICE/test.php\"  method="post">
<%      for(int i=0; i<list1.length; i++)
        {   
            %>                  <input type="hidden" name="lab_id" value=<%=request.getParameter("labid")%>>
                                <%out.println(list2[i]);%>
                                <%out.println(list3[i]);%>
                                <%out.println(list4[i]); %>
                                <input type="checkbox" name="user_id" value=<%out.println(list1[i]);%>><br>


    <%  }}
    %>  
     <input type="submit" value="Submit" name="Submit"/>
        </form> 


</div>
<jsp:include page="footer.jsp"/>

</body>
</html>
4

1 に答える 1

3

使用しているのは1つだけ です。代わりに、使用する必要がuser_idあります。これは、取得している現在の単一ではなく、必要なすべてのsの配列を返します。request.getParameter("user_id")request.getParameterValues("user_id")Stringuser_iduser_id

同様のlab_id

于 2012-10-07T06:32:19.157 に答える