帮助从 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 表格中删除字段的主要内容,如果未能解决你的问题,请参考以下文章