сохранить изменения из таблицы JSP в базу данных

0

У меня есть таблица, которая отображает содержимое базы данных. Я хочу сохранить изменения, измененные в таблице, в мою базу данных. Проблема заключается в том, какую строку я редактирую, каждый раз, когда я пытаюсь сохранить, она принимает в качестве параметров значения из первой строки.

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");
%>
Теги:
jsp

1 ответ

1

Поскольку все строки в вашем Main.jsp имеют одинаковое имя (id, val1, val2), всякий раз, когда вы выполняете вызов request.getParamater(), возвращается 1-й соответствующий параметр.

Вы можете исправить это, извлекая все значения параметров следующим образом.

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

Вам необходимо будет изменить свой Main.jsp соответственно, чтобы убедиться, что вы update.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--> 
  • 0
    Я хочу сохранить в базе данных только те параметры в строке, которую я нажимаю на эту кнопку. Как узнать, какая строка соответствует нажатой кнопке?
  • 0
    @BONIETTE Обновил ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню