繁体   English   中英

根据在另一个选择下拉列表中选择的年份动态显示选择下拉列表中剩余的可用月份

[英]Dynamically display available months left in a select dropdown based on Year selected in another select dropdown

我有一张表,其中包含从 1 月到 12 月的月份,值为 1 到 12。在我的页面上,我有一个从当年开始的年份的下拉列表。 我还有另一个显示月份的下拉菜单。

通过设置当前月份,我可以得到月份的下拉列表来显示当前月份和一年中剩余的月份。 我需要帮助的是月份下拉菜单根据从 dropdwon 中选择的年份显示剩余的可用月份。 也就是说,如果我选择 2019,我应该只看到 12 月(当月和去年的最后一个月)。 如果我选择 2020 年,我应该会看到 1 月到 12 月。

我已经检查了其他解决方案,但它对我所需要的没有帮助。 看到的一些解决方案将月份名称作为数组,但不包括相应的值。

我的php代码如下:

$curmonth = date('n');

$query = "SELECT calmonthsID, months, value from calmonths WHERE value>=? ORDER BY calmonthsID ASC";
$stmt = $connQlife->prepare($query);
$stmt->bind_param('s', $curmonth);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($calmonthsID, $months, $value);

html代码如下:

<select name="year" id="year" value="" tabindex="1" aria-hidden="true" required style="height:50px;display: block;padding:10px;" class="h5">
   <option value="" selected="selected">- Select Year -</option>
   <option value="2019">2019</option>
   <option value="2020">2020</option>
   <option value="2021">2021</option>
   <option value="2022">2022</option>
</select>

<select name="month" id="month" value="" tabindex="1" aria-hidden="true" required style="height:50px;display: block;padding:10px;" class="h5">
    <option value="" selected="selected">- Select One -</option>
    <?php while($stmt->fetch()) { ?>
        <option value=<?Php echo $value; ?>><?Php echo $months; ?></option>                             
    <?php } $stmt->close(); ?>
</select>

如果您不想使用 AJAX,我可能会建议以下解决方法:

  1. 在表单之外呈现所有可能的选择月份输入,ID 为 `month-${year}` 并设置style.display:none
  2. 在 select-year 输入中 make onChange - 将需要的 select-month 复制(或移动)到表单中并取消隐藏它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM