我被指示创建一个选择框,该框允许用户选择从当前年份到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>
答案 0 :(得分:3)
$i
是整数,而$current_year
是字符串,因此严格比较===
时,它们是不匹配的。使用==
进行比较,它应该可以工作。
($i == $current_year ? ' selected="selected"' : '')
有关此详情,请参见http://php.net/manual/en/language.operators.comparison.php
如果将数字与字符串进行比较,或者比较涉及数字字符串,则每个字符串都将转换为数字,然后以数字方式进行比较。这些规则也适用于switch语句。当比较为===或!==时,类型转换不会发生,因为这涉及比较类型和值。