簡體   English   中英

為月份和年份創建一個下拉列表並在 php 中選擇

[英]create a dropdown list for month and year and selected in php

我有一個“按月和年搜索”功能,並在下拉(選擇)字段中列出了月和年。到目前為止,這是完美的,但我需要在提交表單后顯示所選(月和年)。但我無法做如何在下拉列表中選擇年份和月份。下面是我的 php JavaScript 代碼。任何人都可以幫助我如何解決

下面是月份年份的兩個下拉菜單。月份和年份應該顯示為選中狀態。

<select name="month" class="form-control" >

<?php

for ($i = 0; $i <= 12; ++$i)
    {
    $time = strtotime(sprintf('+%d months', $i));
    $label = date('F ', $time);
    $value = date('m', $time);
    printf('<option value="%s" selected="selected">%s</option>', $value, $label);
    }

?>
</select>
<select name="year" class="form-control">
      <?php

for ($i = 0; $i <= 12; ++$i)
    {
    $time = strtotime(sprintf('-%d years', $i));
    $value = date('Y', $time);
    $label = date('Y ', $time);
    printf('<option value="%s" selected="selected">%s</option>', $value, $label);
    }

?>
</select>

到目前為止,這是完美的,但我需要在提交表單后顯示選定的(月份和年份)。但我無法做如何在下拉列表中選擇年份和月份。下面是我的 php java 腳本代碼。任何人都可以幫助我如何解決?

試試這個代碼

<select name="month" class="form-control" >
<?php
    for ($i = 1; $i <= 12; ++$i){
        $time = strtotime(sprintf('+%d months', $i));
        $label = date('F ', $time);
        $value = date('m', $time);
        echo '<option value="'.$value.'" ';
        if((isset($_GET['month']))&&($value==$_GET['month']))echo 'selected';// Check if form submitted or not. select the month if yes
        echo '>'.$label.'</option>';
    }
?>
</select>
<select name="year" class="form-control">
<?php
    for ($i = 0; $i <= 12; ++$i){
        $time = strtotime(sprintf('-%d years', $i));
        $value = date('Y', $time);
        echo '<option value="'.$value.'" ';
        if((isset($_GET['year']))&&($value==$_GET['year']))echo 'selected';// Check if form submitted or not. select the year if yes
        echo '>'.$value.'</option>';
    }
?>
</select>

您應該能夠使用$_REQUEST數組中保存的值來查找每個選擇菜單的值。 但是,正如您所說,表單使用GET之后最好使用$_GET數組中的值,因為這樣可以使 POST 方法空閑,並且如果有任何數據發布(ajax 等),則不會影響所選值

<!doctype html>
<html>
    <head>
        <meta charset='utf-8' />
        <title></title>
    </head>
    <body>
        <form>
            <select name="month" class="form-control">
                <?php
                    $month = !empty( $_GET['month'] ) ? $_GET['month'] : 0;
                    for ($i = 0; $i <= 12; ++$i) {
                        $time = strtotime(sprintf('+%d months', $i));
                        $label = date('F ', $time);
                        $value = date('m', $time);

                        $selected = ( $value==$month ) ? ' selected=true' : '';

                        printf('<option value="%s"%s>%s</option>', $value, $selected, $label );
                    }
                ?>
            </select>

            <select name="year" class="form-control">
                <?php

                    $year = !empty( $_GET['year'] ) ? $_GET['year'] : 0;

                    for ($i = 0; $i <= 12; ++$i)  {
                        $time = strtotime(sprintf('-%d years', $i));
                        $value = date('Y', $time);
                        $label = date('Y ', $time);

                        $selected = ( $value==$year ) ? ' selected=true' : '';

                        printf('<option value="%s"%s>%s</option>', $value, $selected, $label);
                    }
                ?>
            </select>
            <input type='submit' />
        </form>
    </body>
</html>

對於月份代碼

for ($i = 0; $i <= 12; ++$i){
    $time = strtotime(sprintf('+%d months', $i));
    $label = date('F ', $time);
    $value = date('m', $time);
    $sleceted='';
    if(isset($_REQUEST['month']){
        $sleceted=$_REQUEST['month']== $value?'selected:selected':'';
    }
    printf('<option value="%s" '.$sleceted.'>%s</option>', $value, $label);
}

對於年份代碼

for ($i = 0; $i <= 12; ++$i){
    $time = strtotime(sprintf('+%d months', $i));
    $label = date('F ', $time);
    $value = date('m', $time);
    $sleceted='';
    if(isset($_REQUEST['year']){
        $sleceted=$_REQUEST['year']== $value?'selected:selected':'';
    }
    printf('<option value="%s" '.$sleceted.'>%s</option>', $value, $label);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM