删除与jsp中单击的按钮对应的行

时间:2011-03-20 11:30:45

标签: html jsp

  userdetails.jsp

  <tr>

 <td>
 <%
  out.println(rs.getString(1));
  name=rs.getString(1);
  out.print("<input type='hidden' name='user' value='"+name+"'");
  %>

</td>


<td>
<%out.println(rs.getString(2));

    %>
</td>
    <td>
          <%out.println(rs.getString(3));

    %>
    </td>
    <td>
        <%out.println(rs.getString(4));

    %>
    </td>

    <td>
        <input type="Submit" name="delete_user" value="Delete"/>
    </td>

    </tr>

当我点击删除按钮时,只有第一行被删除而不是与点击哪个按钮对应的行

2 个答案:

答案 0 :(得分:3)

您在相同的表单中放置了多个隐藏的输入值并完全删除了按钮。当您使用request.getParameter()获取隐藏的输入值时,无论按下删除按钮,您都会获得第一个输入值。

您需要以自己的形式分组隐藏的输入和删除按钮。

<td>
    <form action="delete" method="post">
        <input type="submit" name="delete_user" value="Delete" />
        <input type="hidden" name="user" value="<%=rs.getString(1)%>" />
    </form>
</td>

这样,请求将始终具有一个和正确的用户名作为参数。


说在JSP中使用 scriptlets 是90年代编写JSP的方式,而且在JSP中混合数据库逻辑并不是一个好习惯。我建议你自己完成this answer

答案 1 :(得分:0)

您可以在点击按钮值时将用户名添加到按钮值:

<input type="Submit" name="delete_user" value="Delete" onclick="this.value += ' <% out.print(name); %>'; this.disabled = true; " />

然后在服务器端代码中,解析值:获取第一个空格后的文本,这是要删除的用户名,仅引用具有该用户名的行。