[請益] 請問下拉式選單預設為當月的迴圈寫法?

作者: cat99961 (阿湯)   2014-08-04 18:41:39
我想要寫一個下拉式選單,是1~12月的下拉式選單,但是預設是當月
於是寫了以下的程式碼
<?php
$j= date('m');?>
<select name="month">
<option value=<?php if((int)$j==1) echo '1 selected';?>>1</option>
<option value=<?php if((int)$j==2) echo '2 selected';?>>2</option>
<option value=<?php if((int)$j==3) echo '3 selected';?>>3</option>
<option value=<?php if((int)$j==4) echo '4 selected';?>>4</option>
<option value=<?php if((int)$j==5) echo '5 selected';?>>5</option>
<option value=<?php if((int)$j==6) echo '6 selected';?>>6</option>
<option value=<?php if((int)$j==7) echo '7 selected';?>>7</option>
<option value=<?php if((int)$j==8) echo '8 selected';?>>8</option>
<option value=<?php if((int)$j==9) echo '9 selected';?>>9</option>
<option value=<?php if((int)$j==10) echo '10 selected';?>>10</option>
<option value=<?php if((int)$j==11) echo '11 selected';?>>11</option>
<option value=<?php if((int)$j==12) echo '12 selected';?>>12</option>
</select> 月
程式碼執行結果有符合需求,但是我覺得太長,想要用迴圈改寫,於是改成
<?php
$j= date('m');?>
<select name="month">
<?php for($i=1;$i<=12;$i++){?>
<option value=<?php if((int)$j==(int)$i) echo $i.'selected';?>>
<?php echo $i;?></option><?php }?></select> 月
結果預設不是選擇當月,而是由"1月"為預設,請問各位高手出了甚麼問題嗎?
該如何改呢?
感激不盡....
作者: richile0819 (全國大火鍋)   2014-08-04 18:47:00
前面 value 的部分 應該就有問題了$i <> $j 的時候 value 會是空值
作者: cf1064 (蚵仔)   2014-08-04 19:26:00
'selected'前面多一個空白變 ' selected'
作者: cat99961 (阿湯)   2014-08-04 20:44:00
謝謝你們.....但我有一個疑問就是我不用迴圈的那個寫法當$i不等於$j時, value也會是空值但執行結果卻是如我想要的高手前輩們,是否覺得奇怪呢?
作者: richile0819 (全國大火鍋)   2014-08-04 20:54:00
你 value 要判斷成立 value 才會有值有迴圈跟沒迴圈的程式 都要判段成立 才會有值.....
作者: cf1064 (蚵仔)   2014-08-04 21:42:00
不用迴圈的寫法是value=,但空值應該是value=''才對所以你只要在if的判斷加上else echo '';就可以了吧
作者: Kenqr (function(){})()   2014-08-04 22:06:00
因為瀏覽器有防呆 所以有時語法錯誤還是能正常顯示
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-08-04 22:17:00
(int)是多餘的,一個都不需要。
作者: cat99961 (阿湯)   2014-08-04 22:30:00
謝謝cf1064,其實您第一次回答就已經講出我這個程式真正的問題

Links booklink

Contact Us: admin [ a t ] ucptt.com