gpt4 book ai didi

java - 为什么删除功能在我的 jsp 文件中不起作用?

转载 作者:行者123 更新时间:2023-11-30 21:42:18 26 4
gpt4 key购买 nike

我创建了一个表格来显示数据,每个数据旁边都有一个复选框。我想创建一个函数,如果用户单击该数据的复选框并按下删除按钮,该数据将从表和数据库中删除。我想出了代码,但它没有删除数据。我的代码有什么问题?

Display on Webpage

HTML

   <%
String id = request.getParameter("hiddenID");
String sql1="";
{
sql1 = "select * from exercise1";
PreparedStatement pstmt1=conn.prepareStatement(sql1);
ResultSet rs1 = pstmt1.executeQuery();
while(rs1.next()){


String arm = rs1.getString("Arm");
String time1 = rs1.getString("Time1");

out.println("<tr>");
out.println("<td style = 'width: 20%'>");
out.println(arm);
out.println("</td>");
out.println("<td style = 'width: 5%'>");
out.println(time1);
out.println("</td>");
%>


<td style="width: 5%"><input class="mychkbox" type="checkbox"
value="<%=id%>" form="multipleDele" name="DeleteChkbox" /></td>

<%
out.println("</tr>");
}
conn.close();
}
%>

这是我的 delete.jsp 文件

    <%
String[] id = request.getParameterValues("DeleteChkbox");
int count=0;
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// Step 2: Define Connection URL
String connURL = "jdbc:mysql://localhost/medicloud?user=root&password=root";
// Step 3: Establish connection to URL
conn = DriverManager.getConnection(connURL);

if (id != null)
{
for(int i=0;i<id.length;i++){
String sqlStr = "DELETE from exercise1 WHERE id=?";
PreparedStatement pstmt = conn.prepareStatement(sqlStr);
pstmt.setInt(1, Integer.parseInt(id[i]));
//pstmt.setInt(1, Integer.parseInt(id[i]));
int rec=pstmt.executeUpdate();
if (rec==1)
count++;
}
}


//System.out.println(functions);
%>
<form action="exercise.jsp" method="post">
<label><%=count%> record(s) deleted!!</label>
<input type="submit" value="Return" name="ReturnBtn" />
</form>
<%

conn.close();
} catch (Exception e) {
out.println(e);
}
%>

最佳答案

您写入复选框值的 id 不是来自数据库结果。它正在 JSP 中从请求参数中检索:

String id = request.getParameter("hiddenID");

...然后写入每个复选框字段:

<input class="mychkbox" type="checkbox" value="<%=id%>" form="multipleDele" name="DeleteChkbox" />

您没有为每个复选框编写不同的 ID。

因此,它可能不是任何数据库记录的 ID,因此它们都不会被删除。

在构建 HTML 时,您应该在 while 循环中读取每条记录的 id

我怀疑你需要这样的东西:

<input class="mychkbox" type="checkbox" value="<%=rs1.getString("id")%>" form="multipleDele" name="DeleteChkbox" />

关于java - 为什么删除功能在我的 jsp 文件中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51016474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com