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

看板PHP作者 (阿湯)時間9年前 (2014/08/04 20:54), 編輯推噓0(0011)
留言11則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《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月開始,真的好奇怪... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.232.186.92 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1407156892.A.6EE.html

08/04 21:01, , 1F
if的不等於,也要寫
08/04 21:01, 1F

08/04 21:15, , 2F
不等於的部分我寫在程式的第7行
08/04 21:15, 2F

08/04 21:15, , 3F
else echo $i;
08/04 21:15, 3F

08/04 21:17, , 4F
你在網頁上檢視原始碼應該很容易就看出問題了吧
08/04 21:17, 4F

08/04 21:17, , 5F
'selected' 應該改成 ' selected'
08/04 21:17, 5F

08/04 21:17, , 6F
感謝terrybob回應我的程式碼
08/04 21:17, 6F

08/04 21:19, , 7F
您用的方式是先判斷$i是否等於$j
08/04 21:19, 7F

08/04 21:20, , 8F
再判斷$sel應為 selected或是空值
08/04 21:20, 8F

08/04 21:23, , 9F
謝謝bibo9901
08/04 21:23, 9F

08/04 21:23, , 10F
真的是那樣
08/04 21:23, 10F

08/04 21:24, , 11F
我好蠢 ><
08/04 21:24, 11F
文章代碼(AID): #1JtuASRk (PHP)
討論串 (同標題文章)
文章代碼(AID): #1JtuASRk (PHP)