Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/webstyle/php-fan.org/public_html/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/webstyle/php-fan.org/public_html/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/webstyle/php-fan.org/public_html/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/webstyle/php-fan.org/public_html/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/webstyle/php-fan.org/public_html/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
htmlタグのプルダウンメニューを簡単に作成します。
特に年月日を入れるときに役に立ちます。
1 2 3 4 5 6 7 8 9 10 11 | <select name="year"> <option value="1950">1950</option> <option value="1949">1949</option> <option value="1948">1948</option> <option value="1947">1947</option> <option value="1946">1946</option> <option value="1945">1945</option> ・ ・ ・ ・ |
このように数字をひとつずつ入れなくてもphpのfor文を使えば、ほんの数行で終わります。
スポンサーリンク
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <select name="year"> <?php $now = date("Y"); for($i = 1950; $i<= $now; $i++):?> <option value="<?php echo $i;?>"><?php echo $i;?></option> <?php endfor;?> </select> 年 <select name="month"> <?php for($i = 1; $i<=12; $i++):?> <option value="<?php echo $i;?>"><?php echo $i;?></option> <?php endfor;?> </select> 月 <select name="day"> <?php for($i = 1; $i<=31; $i++):?> <option value="<?php echo $i;?>"><?php echo $i;?></option> <?php endfor;?> </select> 日 |
もっと簡単に記述してみました。関数を作っておけばもっと楽!下記は上記と同じ物です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <select name="year"> <?php optionLoop('1950', date('Y'));?> </select> 年 <select name="year"> <?php optionLoop('1', '12');?> </select> 月 <select name="day"> <?php optionLoop('1', '31');?> </select> 日 <?php //セレクトオプションのループ設定 function optionLoop($start, $end){ for($i = $start; $i <= $end; $i++){ echo "<option value=\"{$i}\">{$i}</option>"; } } ?> |
引数を増やして初期選択値を付け加えました。3番目の値が初期値です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <select name="year"> <?php optionLoop('1950', date('Y'), '2000');?> </select> 年 <select name="year"> <?php optionLoop('1', '12', '6');?> </select> 月 <select name="day"> <?php optionLoop('1', '31', '15');?> </select> 日 <?php //セレクトオプションのループ設定 function optionLoop($start, $end, $value = null){ for($i = $start; $i <= $end; $i++){ if(isset($value) && $value == $i){ echo "<option value=\"{$i}\" selected=\"selected\">{$i}</option>"; }else{ echo "<option value=\"{$i}\">{$i}</option>"; } } } ?> |
さらに$start値を倍数増やしていく方法です。2だったら2,4,6,8,10,12,14….
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php //セレクトオプションのループ設定 function optionLoop($start, $end, $value = null){ for($i = $start; $i <= $end; $i++){ if ($i % $start == 0) { if(isset($value) && $value == $i){ echo "<option value=\"{$i}\" selected=\"selected\">{$i}</option>"; }else{ echo "<option value=\"{$i}\">{$i}</option>"; } } } } ?> |
ものすごく助かりました!ひとつ加えて教えてほしいのですが、
年の最大を、例えば1900年で止める方法を教えて下さい!
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/webstyle/php-fan.org/public_html/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
例えば1800年から1900年までだと下記のように出来ます。
これは良いですね!コードをシンプルにすることができました。
DBの日付けとの関連で月と日を0埋めしたいのですが、いい方法はありますでしょうか?