2012-12-06 36 views
2

我创建了一个表格。它中的值将从数据库动态创建。我在最后一列添加一个复选框。现在我想知道的是,当选择复选框时,只需要将特定行存储在新数据库中,那么根据选择了多少复选框,应该在数据库中添加多少行。谁能帮我这个?
在此先感谢...如何使用JSP在复选框中动态地包含值?

我的代码:

<%@ page import="java.sql.*" %> 
<% 
    String connectionURL = ""; 
    Connection connection = null; 
    Statement statement = null; 
    ResultSet rs = null; 
    int f=0; 
%> 

<html> 
    <head> 
     <title>csepoff</title> 
    </head> 

    <body> 
     <form name="cse" action="csepoffcheck1.jsp"> 
     <% 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      connection = DriverManager.getConnection(connectionURL,"root","tajmahalss"); 
      statement = connection.createStatement(); 
      String[] batchcse=request.getParameterValues("batchcse"); 
      String batchhcse=""; 
      String data=""; 
      String data1=""; 
      String data2=""; 

      for(int i=0; i<batchcse.length; i++) { 
       batchhcse+=batchcse[i]+" "; 
      } 

      rs=statement.executeQuery("select * from signup where batch='"+batchhcse+"'"); 

      out.println("<table border='1'><tr>"); 
      out.println("<th>NAME</th><th>DEPARTMENT</th><th>BATCH</th>"); 
      out.println("<th>FATHER NAME</th><th>MOTHER NAME</th><th>SELECT</th>"); 

      while(rs.next()){ 
       out.println("<tr>"); 
       out.println("<td>"+rs.getString("name")+"</td>"); 
       out.println("<td>"+rs.getString("depart")+"</td>"); 
       out.println("<td>"+rs.getString("batch")+"</td>"); 
       out.println("<td>"+rs.getString("fname")+"</td>"); 
        out.println("<td>"+rs.getString("mname")+"</td>"); 
       out.println("<td><input type=\"checkbox\" name=\"checkbox\" value=\"${}\"></td>"); 
       out.println("</tr>"); 
      } 
      out.println("</table>"); 
     %> 
      <input type="submit" value="SUBMIT"> 
     </form> 
    </body> 
</html> 

回答

0

一件事,不要在JSP编写Java代码在所有。 JSP仅用于表示。 作为这个问题的答案,你可以按照这个。

您可以将复选框的值设置为rs.getString("id"),其中id是表中该行的主键。

后提交表单可以检索澈复选框值

String[] cbValues = request.getParameterValues("checkBoxNameAsInHtmlForm"); 

并利用其cbValues.length,就可以知道有多少记录需要在数据库中创建。

而不是写out.println()语句,你应该写。

<form name="cse" action="csepoffcheck1.jsp"> 
     <table border='1'> 
      <th>NAME</th> 
      <th>Select</th> 
      <% 
       while (rs.next()) { 
      %> 
      <td><%=rs.getString("name")%></td> 
      <td><input type="checkbox" name="checkbox" 
       value="<%=rs.getString("id")%>"></td> 

      <% 
       } 
      %> 
     </table> 

    </form> 

那么这也不是好的方法,因为它打破了MVC架构的目的。对于目前的情况,就这样做。

下次按照MVC模式,不要在jsp中编写java代码。这是一件非常糟糕的事情。