选择框:如何填充天PHP

时间:2012-02-21 05:10:24

标签: php mysql drop-down-menu

最近我问how to populate years,我认为我有我需要的所有答案。事情是,我有几天的新问题。问题似乎比php更多的是mysql。在我的表用户,生日字段中,我把“date”作为这种格式的类型:0000-00-00。现在当我使用当前选择框“day”时,它会插入2而不是02,然后当我加入$ year时会折衷整个格式。$ month。$ day给我和1988-11-的输出。我怎么解决这个问题?这是几天的代码(年份类似,它在上面的链接中)。感谢

<? 
$bday = $r['birthday'];
$part = explode("-", $bday);
$year = $part[0];
$month = $part[1];
$day = $part[2]; ?>
<select name="day">
    <? for($i = 1; $i <= 31; $i++){?>
    <option value="<? echo $i. '"'; if ($day == $i) {echo 'selected="selected"';}?>"><?echo $i;?></option>  <? }?>
</select>

2 个答案:

答案 0 :(得分:1)

你可以尝试

$bday = $r['birthday'];
$part = explode("-", $bday);
$year = $part[0];
$month = $part[1];
$day = $part[2]; ?>
<select name="day">
    <? for($i = 1; $i <= 31; $i++){?>
    <option value="<? echo str_pad($i, 2, "0", STR_PAD_LEFT) . '"'; if ($day == $i) {echo 'selected="selected"';}?>"><?echo str_pad($i, 2, "0", STR_PAD_LEFT);?></option>  <? }?>
</select>

答案 1 :(得分:0)

<select name="day">
    <? for($i = 1; $i <= 31; $i++){?>
    <option value="<? echo ($i < 10 ? '0' . $i : $i). '"'; if ($day == $i) {echo 'selected="selected"';}?>"><?echo $i;?></option>  <? }?>
</select>