簡體   English   中英

從當年開始的PHP選擇菜單

[英]PHP select menu starting from current year

我正在使用Bootstrap和PHP。 Formmail可以工作,但是下面代碼中的最后一個選項值(年份)會打印前一個選項值(日期)中的值。 我不確定哪里出了問題。

值郵寄到電子郵件:按月服務:1按天服務:2按年服務:2(年與日相同)

<select id="Serve_by_Month" name="Serve_by_Month" required>
<option value="">Month*</option>
<?for($xx=1;$xx<13;$xx++){?>

<option value="<?=$xx?>"<?if($xx==$exp_mo)echo " selected";?>> 
<?=sprintf("%02d",$xx)?>
</option>
<?}?>
</select>
<br class="hidden-lg">
<select id="Serve_by_Day" name="Serve_by_Day" required>
<option value="">Day*</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>

<select id="Serve_by_Year" name="Serve_by_Year" required>
<option value="">Year*</option>
<?
$year = date("Y");
$yearto = date("Y")+10;
while ($year <= $yearto)
{
echo "<option value='".$year."'>".$year."</option>";
$year++;
}
?>
</select>

自從我做任何PHP以來已經有很長時間了,但是這個問題與date(“ Y”)返回一個字符串而不是一個int有關嗎?

嘗試將$ year分配更改為

$year = intval(date("Y"));
$yearto = $year+10;

試試這個,它應該可以解決您的問題

<?php
    if(isset($_POST['submit-form'])){
        $selectedMonth = $_POST['Serve_by_Month']; //This will give you the month
        $selectedDay = $_POST['Serve_by_Day']; //This will give you the day
        $selectedYear = $_POST['Serve_by_Year']; //This will give you the year
        echo 'date: '.$selectedMonth.'-'.$selectedDay.'-'.$selectedYear;
        echo '<br>';
    }
?>

<form method="post">
    <select id="Serve_by_Month" name="Serve_by_Month" required>
        <option value="">Month*</option>
        <?php 
            for($i=1;$i<13;$i++){
                $selected = $i==$exp_mo ? 'selected' : '';
            ?>
            <option value="<?=$i?>" <?=$selected?>>
                <?=sprintf("%02d",$i)?>
            </option>
    <?php } ?>
    </select>

    <br class="hidden-lg">

    <select id="Serve_by_Day" name="Serve_by_Day" required>
        <option value="">Day*</option>
        <?php
            for($i = 1; $i <= 31; $i++){ ?>
                <option value="<?=$i?>"><?=$i?></option>              
            <?php }
        ?>
    </select>

    <select id="Serve_by_Year" name="Serve_by_Year" required>
        <option value="">Year*</option>
        <?php
        for($i = date('Y'); $i <= date('Y')+10; $i++){?>
            <option value="<?=$i?>"><?=$i?></option>
        <?php }
        ?>
    </select>

    <input type="submit" name="submit-form"/>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM