2017-12-18 6 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

あなたがrequest.getParamater()を行うたびにMain.jsp内のすべての行は、同じ名前(idval1val2)を持っているので、最初の一致するパラメータが返されます。

これを修正するには、すべてのパラメータ値を次のように取得します。

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

あなたはそれに応じてあなただけのSaveをクリックされている行を提出したいとあなたが、しかしupdate.jsp

内の値の正しい組み合わせをフェッチすることを確認するためにMain.jsp変更する必要があります、あなたができますその行に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--> 
+0

私は、そのボタンを押した行のパラメータだけをデータベースに保存します。クリックしたボタンにどの行が対応しているかをどのように知ることができますか? – BONIETTE

+0

@BONIETTE答えを更新しました。 –

関連する問題