PHP-在选择框中设置默认年份

时间:2019-02-15 03:48:56

标签: php

我被指示创建一个选择框,该框允许用户选择从当前年份到5到2050的年份。默认年份必须是当前年份。现在,该列表从2014年开始(当前-5年)。

我在将默认年份显示为2019而不是2014时遇到了麻烦。我们假设使用DateTime对象和DateTime类附带的格式。

我包括我也为选择框编写的代码,该代码允许用户选择月份。如果合适的话,我也希望能收到反馈。我还必须创建一个复选框,以允许用户选择整个年份。我已经创建了该复选框,但是甚至不知道如何开始对其进行编码以选择整个年份。

编辑添加:必须仅使用具有某些CSS样式的PHP和HTML进行此分配。

<section>
    <form id="yearForm" name="yearForm" method="post" action="">
        <label for="select_year">Select the year: </label>
        <?php
        // Sets the default year to be the current year.
        $current_year = date('Y');
        // Year to start available options.
        $earliest_year = ($current_year - 5);
        // Set your latest year you want in the range.
        $latest_year = 2050;

        echo '<select>';
        // Loops over each int[year] from current year, back to the $earliest_year [1950]
        foreach ( range( $earliest_year, $latest_year ) as $i ) {
            // Echos the option with the next year in range.
            echo '<option value="'.$i.'" '.($i === $current_year ? ' selected="selected"' : '').'>'.$i.'</option>';
        }
        echo '</select>';
        ?>
    </form>
        <br />
        <br />
    <form id="monthForm" name="monthForm" method="post" action="">
        <label for="month">Select the month: </label>
<!--        <input type=hidden id="month" name=month>-->
                        <select id="month" name="month" >
                            <option value='01'>January</option>
                            <option value='02'>February</option>
                            <option value='03'>March</option>
                            <option value='04'>April</option>
                            <option value='05'>May</option>
                            <option value='06'>June</option>
                            <option value='07'>July</option>
                            <option value='08'>August</option>
                            <option value='09'>September</option>
                            <option value='10'>October</option>
                            <option value='11'>November</option>
                            <option value='12'>December</option>
                        </select>
                        <br />
                        <br />
        <label for="whole_year">Show whole year: </label>
        <input type="checkbox" id="whole_year" name="whole_year" >
        <br />
        <br />
        <input type="submit" class=inline name="submitButton" id="submitButton" value="Submit" />
    </form>

1 个答案:

答案 0 :(得分:3)

$i是整数,而$current_year是字符串,因此严格比较===时,它们是不匹配的。使用==进行比较,它应该可以工作。

($i == $current_year ? ' selected="selected"' : '')

https://3v4l.org/k1P7T

有关此详情,请参见http://php.net/manual/en/language.operators.comparison.php

  

如果将数字与字符串进行比较,或者比较涉及数字字符串,则每个字符串都将转换为数字,然后以数字方式进行比较。这些规则也适用于switch语句。当比较为===或!==时,类型转换不会发生,因为这涉及比较类型和值。