作者cat99961 (阿汤)
看板PHP
标题Re: [请益] 请问下拉式选单预设为当月的回圈写法?
时间Mon Aug 4 20:54:50 2014
※ 引述《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://webptt.com/cn.aspx?n=bbs/PHP/M.1407156892.A.6EE.html
1F:→ terrybob:if的不等於,也要写 08/04 21:01
2F:→ cat99961:不等於的部分我写在程式的第7行 08/04 21:15
3F:→ cat99961:else echo $i; 08/04 21:15
4F:→ bibo9901:你在网页上检视原始码应该很容易就看出问题了吧 08/04 21:17
5F:→ bibo9901:'selected' 应该改成 ' selected' 08/04 21:17
6F:→ cat99961:感谢terrybob回应我的程式码 08/04 21:17
7F:→ cat99961:您用的方式是先判断$i是否等於$j 08/04 21:19
8F:→ cat99961:再判断$sel应为 selected或是空值 08/04 21:20
9F:→ cat99961:谢谢bibo9901 08/04 21:23
10F:→ cat99961:真的是那样 08/04 21:23
11F:→ cat99961:我好蠢 >< 08/04 21:24