如何使用JSP在checkbox中动态包含值?

时间:2012-12-06 09:06:05

标签: jsp jdbc

我创建了一个表。其中的值将从数据库中动态创建。我在最后一栏添加了一个复选框。现在我想知道的是,当选中复选框时,单独的特定行想要存储在新数据库中,因此根据选择了多少复选框,应该在数据库中添加多行。任何人都可以帮我这个吗? 提前谢谢......

我的代码:

<%@ 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>

1 个答案:

答案 0 :(得分:0)

有一件事,根本不要在JSP中编写java代码。 JSP仅用于表示。 仍然作为这个问题的答案,你可以遵循这个。

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

提交表单后,您可以将che复选框值检索为

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代码。这是一件非常糟糕的事情。