选项中的默认值

default value in option

我创建了一个 html 表格,其中有包含月份日期的选项。当我想将今天的日期设置为在页面上加载时选择的日期时,问题就来了。 我有这段代码,但它不起作用,只显示今天,而该月的其他日子都不见了! $day1 是日期函数的今天日期。

<select id="day" name="day">   

<?php  for ($i=1 ; $i<32 ; $i++){
    if($i == $day1){?>
        <option value="<?php echo $i ?>" selected> <?php echo $i ?></option>
    <?php}else{ ?>
        <option value="<?php echo $i ?>"  > <?php echo $i ?></option>
    <?php }} ?>
</select>

尝试在 PHP 开始标记和“}else{”之间添加一个 space。这对我有效:

<?php
$day1=date('d');
?>

<select id="day" name="day">   

<?php  for ($i=1 ; $i<32 ; $i++){
    if($i == $day1){?>
        <option value="<?php echo $i; ?>" selected> <?php echo $i; ?></option>
    <?php }else{ ?>
        <option value="<?php echo $i; ?>"  > <?php echo $i; ?></option>
    <?php }} ?>
</select>

实际上我在文档中找不到任何关于此的信息,除了用户贡献:

I would like to stress out that the opening tag is "<?php[whitespace]", not just "<?php".

使用内联 IF + 回显和点运算符可以轻松实现

<select id="day" name="day">   
<?php  
    $day1=date('d');
    for ($i=1 ; $i<32 ; $i++){
            echo '<option value="'.$i.'" '. ($i == $day1  ? 'selected' : '')  . '>'.$i.'</option>';
    }
?>
</select>

其他的日子就这样过去了,因为你没有回应。

<select id="day" name="day">   
<?php $day1=date('d'); ?> 
<?php  for ($i=1 ; $i<32 ; $i++){
    if($i === $day1){?>
        <option value="<?php echo $i ?>" selected> <?php echo $i ?></option>
    <?php }else{ ?>     
        <?php echo '<option value="'.$i.'">'.$i.'</option>'; ?>
    <?php }} ?>
</select>