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

作者: cat99961 (阿湯)   2014-08-04 20:54:50
※ 引述《cat99961 (阿湯)》之銘言:
: 我想要寫一個下拉式選單,是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月"為預設,請問各位高手出了甚麼問題嗎?
: 該如何改呢?
: 感激不盡....
各位所說的空值問題,其實我最早在寫時有考慮到,所以我寫的程式如下:
<?php
$j= date('m');?>
<select name="month">
<?php for($i=1;$i<=12;$i++){?>
<option value=<?php
if($i==(int)$j) {echo $i.'selected';}
else echo $i;
?>><?php echo $i;?></option><?php }?></select>月
但預設仍是從1月開始,真的好奇怪...
作者: terrybob (罪雲樵)   2014-08-04 21:01:00
if的不等於,也要寫
作者: cat99961 (阿湯)   2014-08-04 21:15:00
不等於的部分我寫在程式的第7行else echo $i;
作者: bibo9901 (function(){})()   2014-08-04 21:17:00
你在網頁上檢視原始碼應該很容易就看出問題了吧'selected' 應該改成 ' selected'
作者: cat99961 (阿湯)   2014-08-04 21:17:00
感謝terrybob回應我的程式碼您用的方式是先判斷$i是否等於$j再判斷$sel應為 selected或是空值謝謝bibo9901真的是那樣我好蠢 ><

Links booklink

Contact Us: admin [ a t ] ucptt.com