2012-02-01 59 views
2

开始我有以下值(一年中的月份)选择框选择框:PHP创建从当月

<label for="select_month">Month: </label> 
<select id="select_month" name="month"> 
<option value="01">01</option> 
<option value="02">02</option> 
<option value="03">03</option> 
<option value="04">04</option> 
<option value="05">05</option> 
<option value="06">06</option> 
<option value="07">07</option> 
<option value="08">08</option> 
<option value="09">09</option> 
<option value="10">10</option> 
<option value="11">11</option> 
<option value="12">12</option> 
</select> 

我想实现是用PHP来得到当前月,在我的选择框中将它作为默认选择的选项。

我如何能做到这一点用干净的代码?

+0

没什么实际。无论发生在我脑海中的事情看起来都很糟 – 2012-02-01 23:51:04

+3

发表你试过的东西。这不是一个要求免费编码的网站。人们愿意帮助,但你必须付出努力。 – 2012-02-01 23:52:24

+2

从您的其他问题来看,您可能需要获得一个基本的PHP书籍或做一些在线教程... – cwd 2012-02-01 23:56:09

回答

4
for ($i = 1; $i <= 12; $i++) 
(
    $month = ($i < 10) ? '0'.$i : $i; 
    echo '<option value="'.$month.'"'; 
    if ($i == date("n")) echo ' selected="selected"'; 
    echo '>'.$month.'</option>'; 
) 

我不能测试这个,因为我在我的手机上,但这应该会有诀窍。

0
<option value="01" <?php echo (1 == date("n") ? 'selected="selected"' : ''); ?>>01</option> 

这将不得不为每个选项 - for循环可能会很好在这种情况下。

+0

什么是循环?我怎么做?抱歉,我对这种事情很陌生。 – 2012-02-01 23:56:24

+1

我支持我上面的评论... – cwd 2012-02-01 23:57:53

2

也许这样的事情?

<select name="month"> 
<?php foreach(range('1', '12') as $m) : ?> 
    <option value="<?php echo $m; ?>" <?php if (date('n') == $m) { echo 'selected="selected"'; } ?>> 
     <?php echo $m ?> 
    </option> 
<?php endforeach; ?> 
</select> 
1

这里是我的两分钱:

<label for="select_month">Month: </label> 
<select id="select_month" name="month"> 

<?php 

for($i = 1; $i <= 12; $i++) { 
    $isCurrentMonth = ($i == intVal(date("m"))) ? 'true': 'false'; 
    echo "<option value=\"$i\" selected=\"$isCurrentMonth\">$i</option>\n"; 
} 

?> 

</select> 
1

使用了类似的结构,普拉特的答案,但使用两位数月份值(就像你在你的例子有)。它使用日期(“M”),而不是日期(“N”),并由于没有出现任何的方式来获得前导零在PHP范围内,我用了一个数组。

<select name="month"> 
<?php foreach(array('01','02','03','04','05','06','07','08','09','10','11','12') as $m) : ?> 
    <option value="<?php echo $m; ?>" <?php if (date('m') == $m) { echo 'selected="selected"'; } ?>> 
     <?php echo $m ?> 
    </option> 
<?php endforeach; ?> 
</select>