PHP でコードを記述して、うるう年に適した選択オプション タグを有効にしようとしています。たとえば、年を選択すると、それがうるう年かどうかがチェックされ、12 か月の別の選択オプション タグが先行する日のプルダウン メニュー (選択オプション タグ) が表示されます。PHP コードは HTML に埋め込まれています。以下は私の失敗した試みです(私はPHPが初めてです):
<form method="post">
<select name="year">
<option value="" selected>Pick a year</option><!--Default-->
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
<select name="month">
<option value="" selected>Pick a month</option><!--Default-->
<!--Show all 12 months-->
<?php for( $i = 1; $i <= 12; $i++ ): ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php endfor; ?>
</select>
<select name="day">
<option value="" selected>Pick a day</option><!--Default-->
<!--Show dates depending on the conditions below:-->
<?php
if ( $month == 1 || 3 || 5 || 7 || 8 || 10 || 12 )
{
//Show dates until 31
for ( $i = 1; $i <= 31; $i++ )
{
?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php
}
}
elseif ( $month == 2 )
{
//Leap year
if ( $year != "" && $year % 4 == 0 && $year % 100 == 0 && $year % 400 == 0 )
{
//Show dates until 29
for ( $i = 1; $i <= 29; $i++ )
{
?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php
}
}
//Regular year (Non-leap year)
else
{
//Show dates until 28
for ( $i = 1; $i <= 28; $i++ )
{
?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php
}
}
}
elseif ( $month == 4 || 6 || 9 || 11 )
{
//Show dates until 30
for ( $i = 1; $i <= 30; $i++ )
{
?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php
}
}
?>
</select>
<input type="submit" value="submit">
</form>
ノート:
上記は不完全なコードであり、機能しないことを理解しています。その上、選択タグから$year
orを定義する方法がわかりません。私はこのようにする必要がありますか?もしそうなら、どこに置くべきですか?$month
$day
<?php
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
//The rest of the php code?
}
?>
for
できれば、月や日のようにループを使用して年を表示したくありません。今回は手動で行いたいと思います(申し訳ありませんが、for
ループを使用することをお勧めする場合は、アドバイスをいただければ幸いです)。
空のデフォルト値がカウントされるのを回避したいので$year =! ""
、うるう年の 2 月ブロックに書きました。if
私はあなたの提案と修正を暖かく歓迎します、私を助けてください:)
前もって感謝します!