2009-10-07 8 views
1

J'essaie d'ajouter à chaque ligne d'un tableau HTML un bouton "supprimer" et un bouton "modifier". Si j'utilise cette méthode, la valeur de "id" est alawys la valeur de id de la première rangée, même si j'ai appuyé sur le bouton des lignes 2-n.Servlets-JSP: Comment mettre un bouton delete-modify pour chaque ligne de tableau HTML!

<% if (listx.size() > 0) 
    { 
     int j = 0; 
     for (int i = 0; i < listx.size(); i++) 
     { 
      Contact x= listx.get(i); 
%> 
<form action="servl" method="get"> 
    <tr> 
     <td><%=++j%>   </td> 
     <td><%=x.getName()%>   </td> 
     <td><%=x.getCar()%>   </td> 
     <td><%=x.getZip()%>   </td> 

     <td> 
      <input type="hidden" name="ID" value="<%=x.getId()%>"> 
      <input type="submit" name="action" value="modify"> 
      <input type="submit" name="action" value="delete"</td> 
    </tr> 
<% 
    } %> 

P.S. 1. Cela pourrait être une solution: http://www.daniweb.com/forums/post983361.html#post983361 (poster 10) mais je dois que mes entrées à ce format:

<input type="submit" name="action" value="NameOfTheAction"> 

plus tard Edit: Ne dis rien sur les scriplets. J'utiliserai JSTL plus tard. :)

Problème résolu: J'ai découvert le problème. Je n'ai pas fermé l'étiquette de formulaire pour chaque ligne. J'ai fermé la balise seulement à la fin de la table (créant un formulaire pour toute la table), donc chaque fois que j'appuyais sur un bouton de rangée, chaque "id" était envoyé.

Répondre

0

Votre Contact est affecté à x mais vous utilisez contact dans votre "ID" caché. Aussi, pourquoi le besoin de la variable supplémentaire j ... ne pourriez-vous pas simplement utiliser (i + 1)?

EDIT:

Je vois que vous mis à jour votre code sneakily pour corriger le problème variable. Avez-vous encore des problèmes? Quelques questions évidentes ... Est-ce que chacun de vos contacts a un ID et getId() renvoie la valeur correcte si vous les parcourez en dehors de la JSP?

+0

1. Oui, vous êtes rite, j'ai changé un peu le nom des variables, car elles sont dans une autre langue. 2. Probablement, mais ce n'est pas mon problème maintenant. :) –

+0

Oui, j'ai furtivement mis à jour le code. :)) 2. Oui, chaque contact a son propre identifiant. J'ai utilisé "Source de la page" de Firefox et chaque ligne a son propre identifiant unique. Si j'utilise la méthode "get" (HTML), l'URL est quelque chose comme ceci: ID = 1 & ID = 2 & action = modifier & ID = 3 & ID = 4 & ID = 5 –

+0

Oh, je vois. Parce que vous avez un élément d'entrée caché pour chaque ligne, il envoie toutes les valeurs au serveur. –

Questions connexes