0

我的 JSP 页面中有一个下拉列表,它显示每小时的时段供用户预订某些操作。例如:上午 11 点 - 下午 12 点,下午 12 点 - 下午 1 点等。现在我想检查数据库中的预订时段,但我不希望下一个用户看到已经预订的插槽。

我有一个带有多个选项的选择标签。从 00:00 - 01:00 到 23:00 - 24:00。我不想显示已经预订的值。

这是我的下拉代码:

<div class="parsley-row" id="display_slot1" style="display:none">                                                           
                                              <select id="slot1" name="slots1" data-md-selectize-delayed>
                                                    <option value="">Slots</option>
                                                             <option value="00:00,01:00">00.00-01.00</option>
                                                             <option value="01:00,02:00">01.00-02.00</option>
                                                             <option value="02:00,03:00">02.00-03.00</option>
                                                             <option value="03:00,04:00">03.00-04.00</option>  
                                                             <option value="04:00,05:00">04.00-05.00</option>   
                                                             <option value="05:00,06:00">05.00-06.00</option>
                                                             <option value="06:00,07:00">06.00-07.00</option>
                                                             <option value="07:00,08:00">07.00-08.00</option>
                                                             <option value="08:00,09:00">08.00-09.00</option>
                                                             <option value="09:00,10:00">09.00-10.00</option>
                                                             <option value="10:00,11:00">10.00-11.00</option>
                                                             <option value="11:00,12:00">11.00-12.00</option>
                                                             <option value="12:00,13:00">12.00-13.00</option> 
                                                             <option value="13:00,14:00">13.00-14.00</option>
                                                             <option value="14:00,15:00">14.00-15.00</option>
                                                             <option value="15:00,16:00">15.00-16.00</option>
                                                             <option value="16:00,17:00">16.00-17.00</option>
                                                             <option value="17:00,18:00">17.00-18.00</option>
                                                             <option value="18:00,19:00">18.00-19.00</option>
                                                             <option value="19:00,20:00">19.00-20.00</option>
                                                             <option value="20:00,21:00">20.00-21.00</option>
                                                             <option value="21:00,22:00">21.00-22.00</option>
                                                             <option value="22:00,23:00">22.00-23.00</option>     
                                                             <option value="23:00,24:00">23.00-24.00</option>                                                                                       
                                                </select> 
                                            </div>

现在我有一个已经预订的插槽列表。现在如何显示除这些之外的所有其他值。

4

1 回答 1

0

在纯 JSP 解决方案中,每次加载页面时都会重新创建选项列表。

这是一个可能的解决方案:

<%@ page import="java.util.Map" %>

<!--
Here I use a class org.myProject.QuerySlots
This class has a method getSlots() to return open slots, as an HashMap, where keys are the values of the option set.

-->
<jsp:useBean id="querySlotsBean" class="org.myProject.QuerySlots" scope="request"/>


<div class="parsley-row" id="display_slot1" style="display:none">
    <select id="slot1" name="slots1" data-md-selectize-delayed>
        <option value="">Slots</option>
        <%
            for (Map.Entry<String,String> entry : querySlotsBean.getSlots().entrySet()){
        %>
        <option value="<%=entry.getKey()%>"><%=entry.getValue()%></option>
        <%
            }
        %>
    </select>
</div>

还有豆子:

package org.myProject;

import java.util.HashMap;

public class QuerySlots {

    public HashMap<String,String> getSlots(){
        // Do a query... Here is an hardcoded value !
        HashMap<String,String> result = new HashMap<>();
        result.put("23:00,24:00","23.00-24.00");
        return result;
    }
}

如果您不想更新现有的选择标签,它更像是一个 Ajax 解决方案,带有 DOM 操作

于 2019-06-17T13:45:41.237 回答