帮助从 HTML 表格中删除字段

Posted

技术标签:

【中文标题】帮助从 HTML 表格中删除字段【英文标题】:Help deleting fields from an HTML table 【发布时间】:2011-08-15 16:59:45 【问题描述】:

所以我不确定如何标记这个,但基本上我有一个动态加载的 html 表,其中包含可以删除的值,目前我正在使用复选框让用户决定删除哪一行。到目前为止,这是我的代码:

      <table id="comments" align="center" >
    <thead>
      <th class="headerClass" >Delete</th>
      <th  class="headerClass">Date</th>
      <th class="headerClass" >Employee</th>
      <th class="headerClass">Comment</th>
    </thead>
      <tbody>           
<%
  while (result.next())  

        commentDate = StringUtils.defaultString(result.getString("commentDate"));
        commentUser = StringUtils.defaultString(result.getString("cName"));
        comment = StringUtils.defaultString(result.getString("xbs_comment"));

%>

      <tr>
        <td class="normal"><input type="checkbox" class="checkbox" /></td>
        <td class="normal"><%=commentDate%></td>
        <td class="normal"><%=commentUser%></td>
        <td class="normal" ><%=comment%></td>                
      </tr> 
  </tbody>     
</table>    
  <label for="comment"><h4>Add a Comment:</h4></label> 
  <textarea cols="105" id="comment" name="comment" rows="4"></textarea> 
<br />

<div align="center" class="submit">
  <input class="submit"  type="submit" name="submit" id="submit" value="Submit" />
</div>

基本上我有一个带有 cmets 的表,用户可以使用提交按钮添加评论,但我希望他们也能够使用复选框删除 cmets。我是否需要另一个带有删除按钮的表单标签,或者我可以只使用这个提交按钮吗?此外,如果我确实保留复选框,我如何让我的程序(函数和 servlet)的后端知道哪个被选中?感谢您的帮助!

【问题讨论】:

我添加了 jsp 和 java 标签,所以这里有这些语言专业知识的人会看到这一点并可以帮助你。我知道这些标签可以解决您的问题。 【参考方案1】:

您可以在同一提交中执行此操作。您也可以通过ajax删除评论,然后您可以在删除成功后重新加载页面。

以下是使用相同提交按钮删除评论的一些方法。我假设用户有权删除表中的所有 cmets。

but I would like them to also be able to use the check box to delete comments

为此,您必须在复选框上分配一个值,该值对于每个 cmets 都是唯一的。通常是代表每条评论的行中的主键或 ID。

为每个复选框使用一个名称以执行多次删除。下面的示例

cmets.jsp

<form name="commentForm" action="addDelete.jsp">
    <div>
<table>
    <thead>
        <tr>
            <th>No.</th><th>Date</th><th>User</th><th>Comments</th>
        </tr>
    </thead>
    <tbody>
        <% 
          for(Comment cmnt : commentList)
        %>
            <tr>
                <td><input type="checkbox" value="<%=cmnt.getCmntId()%>" name="cmntId" /></td>
                <td><%=cmnt.getCmntDate()%></td>
                <td><%=cmnt.getCmntUser()%></td>
                <td><%=cmnt.getCmntComment()%></td>
            </tr>
        <%              
          
        %>
    </tbody>
</table>
<textarea cols="50" rows="10" name="newComment">
</textarea>
<br />
<input type="submit" value="Delete" />
<input type="hidden" name="userId" value="Id_of_the_user">
</div>
</form>

这只是一个例子,所以更多地关注有复选框的部分。

addDelete.jsp

现在在 adddelete.jsp 上,您可以有两个具有不同功能的查询。第一个是添加新的 cmets,第二个是删除评论。

要获取要删除的评论列表,请将其存储在数组中。并获取其他字段。

String[] cmntIds = request.getParameterValue("cmntId"); //This store all the cmntId that are checked in the previous checkbox.
String newComment = request.getParameterValue("newComment");
String userId = request.getParameterValue("userId"); //This can be in a session

//Some function you may need
deleteComment(cmntIds); //Execute a query to delete comment using the cmntIds
inserNewComment(newComment, userId); //Execute a query to add the new comment using newComment and userId if there is a comment attached.

除了这部分,我希望你能处理你需要的功能来做你想做的事。

【讨论】:

这太棒了,谢谢。不过我有两个问题,我不确定如何执行那个特定的“for”循环。我是否只需要 for(Comment cmnt : commentList)..... 还是需要包含我之前的 while 循环中的其他内容?另外,您是说 addDelete.jsp 将是我的 servlet 并使用两个函数来添加/删除? 有没有使用与特定的“for”语句不同的东西?我不认为我正在运行正确的 java 才能使用该语法.... 您也可以使用while loop 执行此操作。我只是制作了一个有数据的对象,以在我的示例中使用。我更习惯使用for,所以我使用了这个。如果您能够运行while,我想您的代码中无需添加其他内容,除非您想使用 Java 中的其他实用程序。然后你需要添加/导入它的包。 addDelete.jsp 实际上并不是一个 servlet,尽管您可以在此处使用转发响应和请求的 servlet。但是您也可以在 servlet 中使用它,就像在 MVC 模式中一样。如果你要使用我的示例代码,你可以使用两个函数。

以上是关于帮助从 HTML 表格中删除字段的主要内容,如果未能解决你的问题,请参考以下文章

如何从 HTML 表格中删除特定单元格?

excel表格中删除重复数据有啥方法

从表格视图单元格中删除 UIlabel 文本

如何从信用卡表格中删除动画?

如何从表格中删除单元格标签?

为啥我不能从情节提要的表格单元格中删除标签?