【问题标题】:How to submit 2 or more values with one button in JSP Form如何在 JSP 表单中一键提交 2 个或多个值
【发布时间】:2019-07-14 13:52:39
【问题描述】:

我有一个表格,其中有几行。例如一张有航班预订的桌子。要删除一项预订,我需要拥有客户 ID 号和航班号。

考虑到我只有一个按钮可以尝试将这些值提交到我的 Servlet,我该怎么做?

我尝试隐藏一个按钮,但该解决方案似乎对我不起作用。 我使用request.getParameter()(当然有两个单独的变量)尝试获取这两个值,但最后只捕获一个,另一个为空。还有其他想法吗?

这是我的表的一个例子。

flight_id    customer_id   
Value 1       Value 2 

表单按钮:

<section class="about-info-area section-gap">
<div class="container">
    <div class="row align-items-center">
        <form method="post" action="/admin_reservations" id="form_reservation"></form>
        <table class="table table-bordered table-striped" style="float: left;">
            <caption style="text-align: center; caption-side: top"><h2>Liste des réservations</h2></caption>
            <thead class="thead-dark">
            <tr>
                <th scope="col">N°Flight</th>
                <th scope="col">N°Client</th>
                <th scope="col">Flight price</th>
            </tr>
            </thead>
            <tbody>
            <% for (Reservation reservation : allReservations) { %>
            <tr>
                <th scope="row"><% out.println(reservation.getFlight().getFlightNum()); %></th>
                <td><% out.println(reservation.getClientNum()); %></td>
                <td><% out.println(reservation.getFlightPrice()); %> €</td>

                <td align="center">
                    <input type="submit" class="btn btn-default btn-sm" name="delete_reservation_client"
                            form="form_reservation" onClick="window.location.reload();" hidden
                            value="<% out.println(reservation.getClientNum()); %>">
                    </input>
                    <button type="submit" class="btn btn-default btn-sm" name="delete_reservation_flight"
                            form="form_reservation" onClick="window.location.reload();"
                            value="<% out.println(reservation.getFlight().getFlightNum()); %>"><span
                            class="glyphicon glyphicon-trash"></span>
                        Delete
                    </button>
                </td>
            </tr>
            <%}%>
            </tbody>
        </table>
    </div>
</div>

还有我的 Servlet:

if(request.getParameter("delete_reservation_client")!=null &&request.getParameter("delete_reservation_flight")!=null){
        int delete_reservation_client = Integer.parseInt(request.getParameter("delete_reservation_client").trim());
        int delete_reservation_flight = Integer.parseInt(request.getParameter("delete_reservation_flight").trim());
        System.out.println("Client : " + delete_reservation_client);
        System.out.println("Flight : " + delete_reservation_flight);

        try {
            DBUtils.deleteReservation(conn,delete_reservation_client,delete_reservation_flight);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

提前感谢您的帮助。

票价

【问题讨论】:

  • 也尝试发布相关代码。
  • @Swati 抱歉,已经完成了

标签: forms jsp servlets


【解决方案1】:

而不是button 使用&lt;a&gt; 标签并附加您要删除的两个值。即:

<td align="center">
    <a href="/admin_reservations?delete_reservation_client=<% out.println(reservation.getClientNum()); %>&delete_reservation_flight=<% out.println(reservation.getFlight().getFlightNum()); %>">
    <span class="glyphicon glyphicon-trash"></span>
     Delete
 </a>                  

Servlet 中通过编写request.getParameter("delete_reservation_client")request.getParameter("delete_reservation_flight") 来获取doGet 方法中的这些值

【讨论】:

  • 请问你为什么放“?”在“delete_reservation_client”之前和“&”之前在 delete_reservation_flight 之前?
  • ? -> 它标识查询字符串的开头,&amp; 用于附加变量,即在您的情况下,您需要传递 2 个值。即:http://example.org?variable1=value1&amp;variable2=value2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 2012-11-10
相关资源
最近更新 更多