Php 选项中的默认值

Php 选项中的默认值,php,forms,html-select,options,Php,Forms,Html Select,Options,我创建了一个html表单,其中包含了包含月份天数的选项。当我想将今天的日期设置为在页面上加载时选择的日期时,问题就出现了。 我有这个代码,但它不工作,只是显示今天和其他日子的一个月已经过去了$day1是“按日期”功能的今天日期 <select id="day" name="day"> <?php for ($i=1 ; $i<32 ; $i++){ if($i == $day1){?> <option value="<?

我创建了一个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{”之间添加一个空格。这对我很有用:

<?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>


使用内联IF+echo和点运算符很容易实现

<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>


$day1是日期函数中的日期。
$day1的值到底是什么?显示设置此值的代码。$day1=date('d');很抱歉:)这是一个月中的一天,如21或3使用
var\u dump($i=$day1);
if
之前,查看它是否显示除
false
以外的内容。如果您看到
true
,则可能是浏览器问题。非常感谢..通过这一点我熟悉了点运算符..谢谢,似乎开始标记后面必须有空格。但是,结束标记似乎不在同样的规则。谢谢你@Avalanche.。如果你读了puni提供的答案。