Supprimer une ligne d'un tableau par un ID qui est à l'intérieur de champ caché
J'ai une table qui génère ses lignes dans une boucle while comme suit dans JSP, (j'utilise un champ caché dans chaque rangée pour obtenir l'ID spécifique et de le POSTER à la servlet)
<tr>
<td><center><% out.print(rs1.getString("teamid"));%></center><input name="tid" type="hidden" value="<%out.print(rs1.getString("teamid"));%>"/></td>
<td><center><% out.print(rs1.getString("teamname"));%></center></td>
<td><center><% out.print(rs1.getString("teaminitials"));%></center></td>
<td><center><% out.print(rs1.getString("teamdesc"));%></center></td>
<td><center><input type="submit" class="greenbutton" name="delete" value="Delete"/></center></td>
</tr>
Dans la servlet,
String buttondelete = request.getParameter("delete");
if(buttondelete!=null){
String tid = request.getParameter("tid");
try {
clmmodel_database.updateQuery("delete from clm_team where teamid = '"+tid+"'");
response.sendRedirect("clmview_teamlist.jsp");
} catch (Exception e) {
}
}
Mais cela supprime toujours la première ligne de la table, pas la ligne j'ai besoin de supprimer. Montrez-moi où j'ai fait l'erreur ou me suggérer un moyen.
- Pourquoi voulez-vous de les soumettre le formulaire lors de supprimer le bouton est cliqué? Au lieu de cela vous pouvez faire appel AJAX.
- Je ne suis pas familier avec l'AJAX 🙁
- Il n'y a pas besoin de l'aide d'AJAX ici.
Vous devez vous connecter pour publier un commentaire.
La solution la plus simple semble être de créer un formulaire pour chaque élément:
Problème est
1)
delete
nom du bouton sur la forme est commune pour toutes les lignes.Comment savez-vous le supprimer bouton est cliqué? Il n'y a pas d'identificateur.
Solution
Je ne suis pas la fourniture complète du code, mais de vous donner la direction.
Il n'est pas nécessaire de
hidden field
.Vous pouvez utiliser AJAX et écrire une fonction javascript qui récupère l'id et le pass de servlet
Javascript
Lien
Dans votre rendu HTML de la table, vous avez plusieurs champs cachés avec le même id-attribut:
Valide. Lors de l'envoi du formulaire, tous valeurs de
tid
champs seront envoyées au serveur, comme un tableau. Comme:tid = [ "ID_1", "ID_2", ... ]
request.getParameter("tid")
va vous retourner le première la valeur de cette liste. Ainsi, toujours sur la première ligne sera supprimé.Une solution possible est de supprimer le champ caché et donner à vos boutons de soumission, que vous avez dans chaque ligne, une valeur différente:
Ensuite, le navigateur va voir:
Et, dans votre servlet, utilisation:
Cela vous donnera le droit de l'ID.
@Dilukshan Mahendra Vous pouvez essayer comme ceci, Qui est travaillé pour moi. Tout ce que vous devez faire est d'entrer votre id de tableau et de balise d'ancrage de classe(Chaque ligne a la balise d'ancrage pour la ligne, donc à utiliser en classe)
Et mon tableau html ligne ressemble,
Espère que cela aide..
utiliser ce code pour afficher la Liste dans la forme de la table:
Ici "rs.getString(5)" est l'id.
id est un nom de champ/5 est un index de colonne dans une table.
Dans le SERVLET/JSP page
Il a travaillé pour moi.