【问题标题】:save the changes from JSP table into the database将 JSP 表中的更改保存到数据库中
【发布时间】:2017-12-18 08:15:12
【问题描述】:

我有一个显示数据库内容的表格。 我想将表中编辑的更改保存到我的数据库中。 问题是无论我编辑哪一行,每次我尝试保存时,它都会将第一行的值作为参数。

Main.jsp:

<FORM NAME="form1" METHOD="POST" action="update.jsp">
    <table>
        <% ResultSet rs=statement.executeQuery(query);
        while(rs.next())
        {%>
            <tr>
                <td style="display:none;"><input type="text" name="id" value="
                <%=rs.getInt("ID") %>"></td>
                <td><input type="text" name="val1" value="<%=rs.getString("Value1") %>"></td>
                <td><input type="text" name="val2" value="<%=rs.getString("Value2") %>"></td>
                <td><input type="submit" name="Submit" value="Save"></td>
            </tr>
        <% } %>
    </table>
</FORM> 

更新.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.sql.*,java.io.*,java.util.*,dbcon.SQLConnection" %>
<% String idRez=request.getParameter("id");
    String v1=request.getParameter("val1");
    String v2=request.getParameter("val2");
    SQLConnection.updateDatabase(idRez,Double.parseDouble(v1), Double.parseDouble(v2));
    response.sendRedirect("Main.jsp");
%>

【问题讨论】:

  • 不清楚问题是什么问题?

标签: java mysql sql jsp


【解决方案1】:

由于Main.jsp 中的所有行都具有相同的名称(idval1val2),因此无论何时调用request.getParamater(),都会返回第一个匹配参数。

您可以通过获取所有参数值来解决此问题,如下所示。

String[] ids = request.getParameterValues("id");

您必须相应地修改您的Main.jsp,以确保您在update.jsp 中获取正确的值组合

但是,由于您只想提交单击Save 所在的行,因此您可以在该行上声明Form,而不是使用全局Form

<!--FORM NAME="form1" METHOD="POST" action="update.jsp"-->
    <table>
        <% ResultSet rs=statement.executeQuery(query);
        while(rs.next())
        {%>
            <tr>
                <td style="display:none;">
                <FORM NAME="form1" METHOD="POST" action="update.jsp">
                <input type="text" name="id" value="
                <%=rs.getInt("ID") %>"></td>
                <td><input type="text" name="val1" value="<%=rs.getString("Value1") %>"></td>
                <td><input type="text" name="val2" value="<%=rs.getString("Value2") %>"></td>
                <td><input type="submit" name="Submit" value="Save"></FORM></td>
            </tr>
        <% } %>
    </table>
<!--/FORM--> 

【讨论】:

  • 我只想将按下该按钮的那一行的参数保存到数据库中。我如何知道哪一行对应于我点击的按钮?
  • @BONIETTE 更新了答案。
猜你喜欢
  • 2016-10-18
  • 2013-03-02
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 2012-07-07
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多