【问题标题】:Html- deleting a row from a databaseHtml-从数据库中删除一行
【发布时间】:2013-11-25 17:04:00
【问题描述】:

我正在尝试使用我的 HTML/JSP 文件中的复选框从我的 MS 访问数据库中删除一行。该文件当前将数据库输出到UI,勾选复选框并按下删除后,弹出提示。但我仍然无法从我的数据库中删除该行。任何帮助将非常感激。谢谢。

见下面的代码:

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

<html>
<head>
<title>DELETE Operation</title>
<script type="text/javascript">
function deleteEmployee(rowid){
input_box = confirm("Are you sure you want to delete this Record?");
if (input_box == true) {
    // Output when OK is clicked
        $('#' + rowid).remove();
        alert('Record Deleted');
} else {
    // Output when Cancel is clicked
    return false;
}
  }
</script>
</head>
<body>

<sql:setDataSource
    var = "bookdB"
    scope = "session"
    driver = "sun.jdbc.odbc.JdbcOdbcDriver"
    url = "jdbc:odbc:bookdB"
/>

<sql:query dataSource="${bookdB}" var="result">
   SELECT * from Employees;
</sql:query>

<table border="1" width="100%">
<tr>
   <th></th>
   <th>Emp ID</th>
   <th>First Name</th>
   <th>Last Name</th>
   <th>Age</th>
</tr>

<c:forEach var="row" items="${result.rows}">
<form method="post" action="reserve.jsp">
<tr id="${row.id}">
    <td><input type = "checkbox" value="${row.id}" name="empIds"></td>
    <td><c:out value="${row.id}"/></td>
    <td><c:out value="${row.first}"/></td>
    <td><c:out value="${row.last}"/></td>
    <td><c:out value="${row.age}"/></td>
</tr>
</form>
</c:forEach>
<input type="button" value="delete" onclick="deleteEmployee('${row.id}');" />
</table>

</body>
</html>

【问题讨论】:

  • 很高兴再次见到你,但这是我真正期待你的代码。
  • 再次嗨,我认为新的帖子将是帮助解决此问题的最佳方式。
  • 我刚刚删除了我之前的评论并发布为答案以便更好地理解。我也只是离开这一天。试试那个代码,然后告诉我。

标签: javascript html database jsp checkbox


【解决方案1】:

太好了,这将帮助您解决问题。看看下面的脚本,

<script type="text/javascript">
function deleteEmployee(){

var empIds = [];
$("input[name='empIds']").each(function() {
empIds.push($(this).val());
});

console.log(empIds);

input_box = confirm("Are you sure you want to delete this Record?");
if (input_box == true) {
// Output when OK is clicked

 // Uncomment this code for check your UI part.
 //  $("input[name='empIds']").each(function() {
 //       $('#' + $(this).val()).remove();
 //   });
 //   alert('Record(s) Deleted');

$.ajax({
    url : 'reserve.jsp?empIds='+empIds,
    type : "POST",
    async : false,
    success : function() {
        $("input[name='empIds']").each(function() {
            $('#' + $(this).val()).remove();
        });
        alert('Record(s) Deleted');
    }
});

    $('#' + rowid).remove();
    alert('Record Deleted');
} else {
// Output when Cancel is clicked
return false;
}
}
</script>

在你的 html 部分,

<table border="1" width="100%">
<tr>
  <th></th>
  <th>Emp ID</th>
  <th>First Name</th>
  <th>Last Name</th>
  <th>Age</th>
</tr>

<c:forEach var="row" items="${result.rows}">
<form method="post" action="reserve.jsp">
<tr id="${row.id}">
<td><input type = "checkbox" value="${row.id}" name="empIds"></td>
<td><c:out value="${row.id}"/></td>
<td><c:out value="${row.first}"/></td>
<td><c:out value="${row.last}"/></td>
<td><c:out value="${row.age}"/></td>
</tr>
</form>
</c:forEach>
<input type="button" value="delete" onclick="deleteEmployee();" />
</table>

最初忘记 ajax,确保您将在按钮上获得正确的行 id 在您的函数中使用console.log(empIds)alert(empIds); 单击。如果您的数据库部分是正确的,希望您一定会得到这个时间。

【讨论】:

  • 您好 Vinoth,再次感谢您的更新。对不起,但它不起作用。当我使用上面的代码时,没有弹出删除确认提示。
  • 如果我输入下面的代码,它会从我的数据库中删除一条记录,但问题是我必须在代码中设置该 ID,所以在本例中为 103 。 从员工那里删除 Id = ? '
  • 不是将您的请求传递给jsp,而是将它传递给一些servlet类。在那里您可以收到 id 并进行删除。不推荐使用 JSP 进行数据库操作。
  • 我做了一个新功能,现在我可以从 UI 中删除带有复选框的行,但我仍然无法从 Access 数据库中删除它。这仍然在 JSP 文件中。我很欣赏这个建议,但我网站的其余部分是 JSP。不想改变这一切。
  • 帮个忙,你能告诉我你用来删除记录的新函数和代码吗?您可以编辑您的问题并进行更新。
猜你喜欢
  • 2018-12-19
  • 2014-12-29
  • 2015-10-13
  • 2015-08-07
  • 1970-01-01
  • 2014-07-22
  • 2014-05-09
  • 2014-05-30
相关资源
最近更新 更多