帮助从HTML表中删除字段

时间:2011-04-29 18:32:45

标签: java html forms jsp

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

      <table id="comments" align="center" width="59%">
    <thead>
      <th class="headerClass" width="7%">Delete</th>
      <th width="15%" class="headerClass">Date</th>
      <th class="headerClass" width="15%">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" width="68%"><%=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" width="10%" type="submit" name="submit" id="submit" value="Submit" />
</div>

基本上我有一个带注释的表,用户可以使用提交按钮添加注释,但我希望他们也可以使用复选框删除注释。我需要另一个带删除按钮的表单标签,还是只使用这一个提交按钮?此外,如果我继续使用复选框,我如何让我的程序(函数和servlet)的后端知道哪些被检查?谢谢你的帮助!!

1 个答案:

答案 0 :(得分:2)

您可以使用相同的提交执行此操作。此外,您还可以通过ajax删除评论,然后您可以在删除成功后重新加载页面。

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

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

要执行此操作,您必须在复选框上指定一个值,该值对于每个注释都是唯一的。通常是代表每条评论的行中的主键或ID。

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

<强> comments.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上,你可以有两个具有不同功能的查询。第一个用于添加新注释,第二个是删除注释。

要获取要删除的注释列表,请将其存储在数组中。并获得其他领域。

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.

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