繁体   English   中英

PHP在选项中显示当前月份

[英]PHP Displaying current month in option select

如何使用PHP在选项选择中默认选择当前月份

到目前为止,这是我尝试过的。

$curmonth = date("F");

并显示整个月

<select>
<?php
for($i = 1 ; $i <= 12; $i++)
{
$allmonth = date("F",mktime(0,0,0,$i,1,date("Y")))
?>
 <option value="<?php 
   echo $i; 
   if($curmonth==$allmonth)
   {
   echo 'selected';
   }
   ?>" 
   >
    <?php
    echo date("F",mktime(0,0,0,$i,1,date("Y")));

    }
    ?>
    </option>

根据上面的代码,我将当前月份分配为$ curmonth,并在内部循环中为整个月份分配$ allmonth。

Value

<option value="<?php 
   echo $i; 
   if($curmonth==$allmonth)
   {
   echo 'selected';
   }
   ?>" 
   >
    <?php
    echo date("F",mktime(0,0,0,$i,1,date("Y")));

    }
    ?>
    </option>

用于检查当前月份是否等于所有月份,并显示selected以使其处于selected 但是我没有得到结果。我得到的是所有项目都显示在选择选项中。

我想念什么?

你错过的是

您试图在值中显示所选内容

您需要做的是

<option value="<?php 
echo $i; 
?>"
<?php
if($allmonth==$curmonth)
{
  echo ' selected';
}
?>     
>
<?php
echo $allmonth;
}
?>
</option> 

因此,结果将是

<select >
<option value="1">
January<option value="2">
February<option value="3">
March<option value="4">
April<option value="5">
May<option value="6">
June<option value="7">
July<option value="8">
August<option value="9" selected>
September<option value="10">
October<option value="11">
November<option value="12">
December</option>

您没有正确关闭正在创建的<option>标记。 缩进代码使这些问题更加明显:

<select>
<?php
for($i = 1 ; $i <= 12; $i++)
{
    $allmonth = date("F",mktime(0,0,0,$i,1,date("Y")))
    ?>
    <option value="<?php 
    echo $i; 
    if($curmonth==$allmonth)
    {
        echo 'selected';
    }
    ?>" 
    >
    <?php
    echo date("F",mktime(0,0,0,$i,1,date("Y")));
    //Close tag inside loop
    ?>
    </option>
    <?php
}

希望你在这里错了

    <option value="<?php 
       echo $i; ?>"
<?php 
       if($curmonth==$allmonth)
       {
       echo 'selected';
       }
       ?>" 
       >
        <?php
        echo date("F",mktime(0,0,0,$i,1,date("Y")));

        }
        ?>
        </option>

您错过了该值的右引号

您在该行的options值中用引号引起的错误

   <option value="<?php 
   echo $i; if($curmonth==$allmonth)
   {
   echo 'selected';
   }
   ?>" 
     ^ // This is the quotes opened for value and is not properly closed
   >

在这里,您必须关闭引号。 根据您的代码,它将显示为:

 <option value="9 selected" >

另外,您没有正确关闭<option> 将您的代码更改为:

<select>
<?php
for($i = 1 ; $i <= 12; $i++)
{
   $allmonth = date("F",mktime(0,0,0,$i,1,date("Y")))
   ?>
   <option value="<?php echo $i;?>" <?php if($curmonth==$allmonth){echo 'selected';}?> >
                                  ^  // close quotes here
   <?php
   echo $allmonth;?>
   </option>
}
</select>

看一下这个例子:

$current = date('F');
for($i = 1 ; $i <= 12; $i++) {
    $month = date("F",mktime(0,0,0,$i,1,date("Y")));
    if( $current == $month )
        echo  $month . " - Selected \r\n";
    else 
        echo $month . "\r\n";
}

在HTML格式中:

echo "<select>";
$current = date('F');
for($i = 1 ; $i <= 12; $i++) {
    $month = date("F",mktime(0,0,0,$i,1,date("Y")));
    if( $current == $month )
        echo "<option value='$month' selected='selected'>"  $month . "</option>";
    else 
        echo "<option value='$month'>"  $month . "</option>";
}
echo "</select>";

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM