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