2017-12-18 317 views
0

我有一個顯示數據庫內容的表。 我想將表中編輯的更改保存到我的數據庫中。 問題是無論我編輯哪一行,每當我嘗試保存時,它都會將參數從第一行中取出。將JSP表中的更改保存到數據庫中

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> 

update.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"); 
%> 
+0

不清楚問題是什麼問題? –

回答

1

由於您Main.jsp所有行具有相同的名稱(idval1val2),當你做一個request.getParamater()調用,將返回第一個匹配參數。

您可以通過如下獲取所有參數值來解決此問題。

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

你將不得不修改Main.jsp因此,以確保您在update.jsp

取值的正確組合然而,當你只是想提交在其上單擊Save行,你可以在行上聲明Form而不是Global 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--> 
+0

我想將僅按下該按鈕的行上的參數保存到數據庫。我怎麼知道哪一行對應於我點擊的按鈕? – BONIETTE

+0

@BONIETTE更新了答案。 –

相關問題