作者cat99961 (阿汤)
看板PHP
标题[请益] 请问下拉式选单预设为当月的回圈写法?
时间Mon Aug 4 18:41:39 2014
我想要写一个下拉式选单,是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月"为预设,请问各位高手出了甚麽问题吗?
该如何改呢?
感激不尽....
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.232.186.92
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1407148901.A.DD5.html
1F:→ richile0819:前面 value 的部分 应该就有问题了 08/04 18:47
2F:→ richile0819:$i <> $j 的时候 value 会是空值 08/04 18:50
3F:推 cf1064:'selected'前面多一个空白变 ' selected' 08/04 19:26
4F:→ cat99961:谢谢你们.....但我有一个疑问 08/04 20:44
5F:→ cat99961:就是我不用回圈的那个写法 08/04 20:44
6F:→ cat99961:当$i不等於$j时, value也会是空值 08/04 20:46
7F:→ cat99961:但执行结果却是如我想要的 08/04 20:46
8F:→ cat99961:高手前辈们,是否觉得奇怪呢? 08/04 20:47
9F:推 richile0819:你 value 要判断成立 value 才会有值 08/04 20:54
10F:→ richile0819:有回圈跟没回圈的程式 都要判段成立 才会有值..... 08/04 20:55
11F:→ cf1064:不用回圈的写法是value=,但空值应该是value=''才对 08/04 21:42
12F:→ cf1064:所以你只要在if的判断加上else echo '';就可以了吧 08/04 21:43
13F:推 Kenqr:因为浏览器有防呆 所以有时语法错误还是能正常显示 08/04 22:06
14F:→ MOONRAKER:(int)是多余的,一个都不需要。 08/04 22:17
15F:→ cat99961:谢谢cf1064,其实您第一次回答就已经讲出我这个程式真 08/04 22:30
16F:→ cat99961:正的问题 08/04 22:30