【问题标题】:How to Disable dropdown option on basis of date如何根据日期禁用下拉选项
【发布时间】:2018-11-13 18:30:10
【问题描述】:

我正在创建一个预订工具,如果用户预订了一个时间段,则应该为其他用户禁用该选项。 例如,我有上午 9:00 到下午 1:00 和上午 10:00 到下午 2:00 的时间段,例如在下拉列表中,并且还有一个日期选择字段。如果用户预订了 2018 年 10 月 24 日的日期并选择上午 9:00 到下午 1:00,则应在下拉菜单中禁用该时段,以便其他用户无法选择。

<div class="col-md-10 offset-md-1">
    <div class="form-group">
        <input type="date" name="tool_date" class="form-control">
    </div>
</div>

<div class="col-md-10 offset-md-1">
    <div class="form-group">
        <h4>Service Timing Mon - Fri *</h4>

        <select class="form-control" name="tool_srvc_timing" style="height: 35px;">
          <?php
            include("db_connection.php");
            $query = "SELECT tool_time FROM main_tool";
            $result=mysqli_query($con,$query);
            while ($row = mysqli_fetch_array($result)) {
          ?>
          <option value="<?php echo $row['tool_time']; ?>">
              <?php echo $row['tool_time']; ?>
          </option>
          <?php } ?>
          <!-- <option value="">9:00 AM to 1:00 PM</option>
          <option value="">10:00 AM to 2:00 PM</option>
          <option value="">11:00 AM to 3:00 PM</option>
          <option value="">12:00 PM to 4:00 PM</option>
          <option value="">01:00 PM to 5:00 PM</option> -->
        </select>
    </div>
</div>

在上面的代码中,我使用 input type="date" 进行日期选择并从数据库中获取时隙。 在数据库中,表 id 和 tool_time 中只有两列。 请帮助我解决这个问题以及我需要做什么才能获得解决方案。我只是通过电子邮件将预订详细信息发送给用户和所有者。任何帮助表示赞赏。

【问题讨论】:

  • 这将需要不断检查数据库中已经使用的日期和时间
  • 怎么做?请指导我。

标签: javascript php jquery


【解决方案1】:

您想禁用,从下拉列表中预订时间

您需要检查php中的条件是否已预订,如果已预订则在&lt;option&gt;标签内应用echodisabled

<select class="form-control" name="tool_srvc_timing" style="height: 35px;">
    <?php
    include("db_connection.php");
    $query = "SELECT tool_time FROM main_tool";
    $result=mysqli_query($con,$query);
    while ($row = mysqli_fetch_array($result)) {
    ?>
    <option <?php if($row['Booked_Column_Name']!="") echo "disabled"; ?> value="<?php echo $row['tool_time']; ?>">
        <?php echo $row['tool_time']; ?>
    </option>
    <?php } ?>
</select>

您需要将Booked_Column_Name 替换为您的数据库列名。

它看起来像这样:

<select class="form-control" name="tool_srvc_timing" style="height: 35px;">
    <option value="">9:00 AM to 1:00 PM</option>
    <option disabled value="">10:00 AM to 2:00 PM</option>
    <option value="">11:00 AM to 3:00 PM</option>
    <option disabled value="">12:00 PM to 4:00 PM</option>
    <option value="">01:00 PM to 5:00 PM</option>
</select>

【讨论】:

  • 如何将其与日期联系起来?。用户将首先选择日期,然后我们将检查该特定日期的时间段是否已预订,然后该选项将被禁用。
  • 这是php服务器端编码,您需要将选定的日期传递给服务器。要么应用在where sql 查询条件中,要么应用在&lt;option&gt; 内。这取决于您的编码结构。
  • 我还是一头雾水。我已经尝试过您的解决方案,但无法将其与日期联系起来。现在我又创建了一张预订表,并将在那里插入预订的位置并相应地获取结果。
【解决方案2】:

我得到了解决方案。 1. 我创建了两个表。一个我有时间段,然后是第二张桌子来保存预订详细信息 2.我从第一个表中获取时隙以通过while循环显示在下拉列表中,然后再次创建第二个嵌套while循环以检查数据库中是否可用,然后禁用该选项否则不可用。谢谢大家的帮助和cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2018-01-24
    相关资源
    最近更新 更多