簡體   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