2

I created one table. Values in it will be dynamically created from the database. I add a checkbox at the last column. Now what I like to know is that, when the checkbox is selected that particular row alone want to be stored in new database, so according to how much checkbox is selected that much row should be added in the database. Can any one help me with this?
Thanks in advance...

My code:

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

1 に答える 1

0

1 つ、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 パターンに従い、java コードを jsp でまったく記述しないでください。それは非常に悪いことです。

于 2013-07-30T08:36:21.197 に答える