[请益] 请问下拉式选单默认为当月的循环写法?

楼主: 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