我创建了一个表。其中的值将从数据库中动态创建。我在最后一栏添加了一个复选框。现在我想知道的是,当选中复选框时,单独的特定行想要存储在新数据库中,因此根据选择了多少复选框,应该在数据库中添加多行。任何人都可以帮我这个吗? 提前谢谢......
我的代码:
<%@ 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 :(得分: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代码。这是一件非常糟糕的事情。