根据日期隐藏下拉选项

汤姆伯德

我正在设计一个 woocommerce wordpress 网站,其中出售杂志中的广告空间。我被要求在每个产品上包含一个属性,说明开始日期,但隐藏当前月份和之后的月份,以阻止人们购买空间并期望它立即开始。

出于示例目的,我已在此小提琴中提取了 HTML

select {
  border-color: #F1F1F1;
  border-top-color: #DDD;
  border-left-color: #DDD;
  background-color: #F9F9F9;
  color: #515151;
  font: 12px Tahoma;
  padding: 8px;
  margin-bottom: 7px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
<table>
  <tbody>
    <tr>
      <td class="label"><label for="advert-size">Advert Size</label></td>
      <td class="value">
        <select id="advert-size" class="" name="attribute_advert-size" data-attribute_name="attribute_advert-size" data-show_option_none="yes">
                <option value="">Choose an option</option>
                <option value="Eighth page" class="attached enabled">Eighth page</option>
                <option value="Quarter page (portrait)" class="attached enabled">Quarter page (portrait)</option>
                <option value="Quarter page (landscape)" class="attached enabled">Quarter page (landscape)</option>
                <option value="Half Page (portrait)" class="attached enabled">Half Page (portrait)</option>
                <option value="Half page (landscape)" class="attached enabled">Half page (landscape)</option>
                <option value="Full page (standard)" class="attached enabled">Full page (standard)</option>
                <option value="Full page (premium)" class="attached enabled">Full page (premium)</option>
                <option value="Front cover banner" class="attached enabled">Front cover banner</option>
            </select>
      </td>
    </tr>
    <tr>
      <td class="label"><label for="advert-period">Advert Period</label></td>
      <td class="value">
        <select id="advert-period" class="" name="attribute_advert-period" data-attribute_name="attribute_advert-period" data-show_option_none="yes">                     <option value="">Choose an option</option>
                <option value="1 month" class="attached enabled">1 month</option>
                <option value="3 months (save 10%)" class="attached enabled">3 months (save 10%)</option>
                <option value="6 months (save 15%)" class="attached enabled">6 months (save 15%)</option>
                <option value="12 months (save 20%)" class="attached enabled">12 months (save 20%)</option></select>
      </td>
    </tr>
    <tr>
      <td class="label"><label for="start-month">Start month</label></td>
      <td class="value">
        <select id="start-month" class="" name="attribute_start-month" data-attribute_name="attribute_start-month" data-show_option_none="yes">
            <option value="">Choose an option</option>
            <option value="Jan" class="attached enabled">Jan</option>
            <option value="Feb" class="attached enabled">Feb</option>
            <option value="Mar" class="attached enabled">Mar</option>
            <option value="Apr" class="attached enabled">Apr</option>
            <option value="May" class="attached enabled">May</option>
            <option value="Jun" class="attached enabled">Jun</option>
            <option value="Jul" class="attached enabled">Jul</option>
            <option value="Aug" class="attached enabled">Aug</option>
            <option value="Sep" class="attached enabled">Sep</option>
            <option value="Oct" class="attached enabled">Oct</option>
            <option value="Nov" class="attached enabled">Nov</option>
            <option value="Dec" class="attached enabled">Dec</option></select><a class="reset_variations" href="#" style="visibility: hidden;">Clear</a> </td>
    </tr>
  </tbody>

</table>

在 JS 或 PHP 中执行此操作的最佳方法是什么?

莫尔

您可以通过以下方式替换您的选项列表:

<option value="">Choose an option</option>
<?php
for ($m=1; $m<=12; $m++) {
    $currentMonth = date('n');
    $nextMonth = date('n') == 12 ? 1 : date('n') + 1;

    if ($m == $currentMonth || $m == $nextMonth) continue;

    $month = date('M', mktime(0,0,0,$m, 1, date('Y')));

    echo '<option value="'.$month.'" class="attached enabled">'.$month.'</option>';
}
?>

这提供了您发布的相同选项列表,减去当前和下个月。

PHP 沙盒

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据所选的下拉选项取消隐藏div

来自分类Dev

根据下拉选项更改隐藏字段值

来自分类Dev

根据下拉值隐藏/显示日期

来自分类Dev

如何根据日期禁用下拉选项

来自分类Dev

根据数组值的下拉菜单的jQuery隐藏选项

来自分类Dev

根据数组值的下拉菜单的jQuery隐藏选项

来自分类Dev

下拉选项隐藏/显示

来自分类Dev

根据网址中的关键字使用JavaScript隐藏下拉选项

来自分类Dev

窗口小部件应根据下拉菜单中选择的选项显示或隐藏

来自分类Dev

如何根据下拉菜单中选择的选项隐藏/显示文本字段?

来自分类Dev

窗口小部件应根据下拉菜单中选择的选项显示或隐藏

来自分类Dev

根据用户权限在下拉菜单中显示/隐藏选项

来自分类Dev

根据下拉选择隐藏div

来自分类Dev

根据值隐藏某些选项

来自分类Dev

根据值隐藏某些选项

来自分类Dev

根据之前的选择隐藏选项

来自分类Dev

根据日期隐藏表格行

来自分类Dev

jQuery Mobile-隐藏下拉选项

来自分类Dev

如何隐藏下拉菜单选项?

来自分类Dev

在下拉菜单中隐藏选项

来自分类Dev

使用下拉选项显示/隐藏 div

来自分类Dev

根据用户Jquery的选择隐藏下拉列表

来自分类Dev

根据下拉选择隐藏/显示内容

来自分类Dev

根据用户Jquery的选择隐藏下拉列表

来自分类Dev

根据下拉选择显示或隐藏<div>

来自分类Dev

根据下拉选择显示和隐藏

来自分类Dev

根据下拉值隐藏 HTML (vanilla)

来自分类Dev

根据选择的下拉值隐藏或显示数据

来自分类Dev

根据下拉选项过滤数据反应