【问题标题】:How to send dropdown value to servlet NOT the option text如何将下拉值发送到 servlet 而不是选项文本
【发布时间】:2020-05-27 04:50:58
【问题描述】:

我有选项和值的下拉菜单。我可以通过 servlet 中的下拉名称获取选项值,但是如何获取 servlet 中的下拉“值”。在屏幕截图中,我暂时将 with 选项连接起来,但我想将值存储在 servlet 的变量中。 请帮忙:

HTML:

 <input type="text" name="taxiDropdown" id= "taxiDropdown" placeholder="Search taxi...">
                            </div>
                                <div class="scrolling menu">
                                    <%
                                        List eList = (ArrayList) session.getAttribute("taxiInfo");
                                    %>
                                    <%
                                        for (int i = 0; i < eList.size(); i++) {
                                    %>
                                    <div class="item" data-value="<%=((TaxiInfo) eList.get(i)).getID()%>">
                                        <div class="ui green empty circular label"></div>
                                        <%=((TaxiInfo) eList.get(i)).getTaxiPlate() +" "+ ((TaxiInfo) eList.get(i)).getID() %>

                                    </div>
                                    <%
                                        }
                                    %>
                                </div>
                            </div>

小服务程序:

String val = request.getParameter("taxiDropdown");

(在“val”中,我想存储下拉菜单的值而不是选项文本)

【问题讨论】:

  • 您需要(TaxiInfo) eList.get(i)).getID() 值吗?还有val 给你什么?
  • 完全正确,我怎么能得到它?所以下拉选项给我 1076(表中的名称)和值给我(1(表中的 ID)
  • 当您从下拉列表中选择任何选项时,String val = request.getParameter("taxiDropdown") val 在 servlet 中为您提供了什么?两个值?还是只有一个?
  • 谢谢,另一个人说,如果不输入html,我就无法获得“值”(输入名称=“文本”值=“123”)。正如您在括号中看到的那样,我正在尝试使用 getParameter 获得“123”,我认为这是不可能的。

标签: java html servlets


【解决方案1】:

在 JSP 中你应该有类似的东西:

<form method="post">
    <select name="taxiDropdown" id="taxiDropdown">
        <%
            List<TaxiInfo> eList = (List<TaxiInfo>) request.getAttribute("taxiInfo");
            for (TaxiInfo taxiInfo : eList) {
        %>
        <option name="<%=taxiInfo.getTaxiPlate()%>" value="<%=taxiInfo.getID()%>"><%=taxiInfo.getTaxiPlate()%></option>
        <%
            }
        %>
    </select>
    <input type="submit" />
</form>

然后在控制器/servlet 中你会收到 TaxiInfo 的 id:

String val = request.getParameter("taxiDropdown");
System.out.println(val);

或者在您的情况下,您应该使用具有所需值的 javascript 设置隐藏输入。

【讨论】:

  • 所以你说,没有隐藏输入就没有办法在request.getParameter中获取value="">?
  • 是的,据我所知,如果不使用经典的 html 选择或使用 javascript 设置的隐藏输入,您将无法获取 taxInfo.ID 的值。
  • 很高兴知道,我添加了隐藏字段并获得了价值。谢谢
【解决方案2】:

在 html 中添加了这段代码:

将下拉选择的值移动到隐藏的文本框

<script type='text/javascript'>
    $(function() {
        $('#driverdp').change(function() { <-- this is my dropdown -->
            var x = $(this).val();
            $('#driverid').val(x); <-- this is my textbox -->
        });
    });
</script>

小服务程序: 获取servlet中隐藏文本的值

String text= request.getParameter("driverId");

希望对某人有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多