Справка по удалению полей из HTML-таблицы

#java #html #forms #jsp

#java #HTML #формы #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>
  

В принципе, у меня есть таблица с комментариями, пользователь может добавить комментарий с помощью кнопки отправки, но я бы хотел, чтобы они также могли использовать флажок для удаления комментариев. Нужен ли мне другой тег формы с кнопкой удаления или я могу использовать только эту кнопку отправки? Кроме того, если я сохраню флажки, как мне сообщить серверной части моей программы (функции и сервлета), какая из них была отмечена? Спасибо за любую помощь!!

Комментарии:

1. Я добавил теги jsp и java, так что кто-нибудь здесь, кто разбирается в этих языках, увидит это и сможет вам помочь. Я знаю, что эти теги необходимы для решения ваших вопросов.

Ответ №1:

Вы можете сделать это вместе с той же отправкой. Также вы можете удалить комментарий через ajax, после чего вы сможете перезагрузить страницу после успешного удаления.

Вот некоторые из способов удаления комментария с помощью той же кнопки отправки. И я предполагаю, что у пользователя есть доступ для удаления всех комментариев в таблице.

 but I would like them to also be able to use the check box to delete 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.
  

Я надеюсь, что помимо этой части, вы сможете определить, какая функция вам понадобится, чтобы делать то, что вы хотите.

Комментарии:

1. Это потрясающе, спасибо. Однако у меня есть два вопроса, я не уверен, как выполнить этот конкретный цикл «for». Понадобится ли мне просто for(Comment cmnt: CommentList){….. или мне нужно включить другие параметры, которые были в моем предыдущем цикле while? Кроме того, вы хотите сказать, что addDelete.jsp будет моим сервлетом и использовать две функции для добавления / удаления?

2. Можно ли в любом случае использовать что-то отличное от этого конкретного оператора «for»? Я не думаю, что я использую правильную java, чтобы иметь возможность использовать этот синтаксис….

3. Вы также можете сделать это с помощью while loop . Я просто создаю объект, содержащий данные, для использования в моем примере. И я больше привык к for , поэтому я использовал это. И если вы сможете запустить while , я думаю, не будет необходимости добавлять что-то еще в ваш код, за исключением того, что вы захотите использовать другие утилиты из Java. Затем вам нужно будет добавить / импортировать его пакет. addDelete.jsp на самом деле не является сервлетом, хотя вы можете использовать сервлет, который пересылает здесь ответ и запрос. Но вы также можете использовать это в своем сервлете как в шаблоне MVC. Вы можете использовать две функции, если собираетесь использовать мой пример кода.