0
<select name="year"><?=ddY()?></select>  


function ddY(){
        for($i=1900;$i<=date('Y');$i++)
        $arr[] = $i;
        $arr = array_reverse($arr);
        foreach($arr as $year){ 
         if($year == date('Y')) {
         echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';

         } else {
            echo '<option value="'.$year.'">'.$year.'</option>';
        }



        //echo'<option value="'.$year.'">'.$year.'</option>'; 
    } 
    }

ドロップダウンには問題なく入力されていますが、現在の年は選択されていません。

4

4 に答える 4

1

それは完全にうまくいくはずです。これは答えではありません - あなたの2つのループを書き直すための単なる提案です:

<select name="year">
    <?php
        $currentYear = (int)date('Y');
        for ($i = $currentYear; $i >= 1900; $i--) {
            echo '<option value="' . $i . '"' . ($i == $currentYear ? ' selected="selected"' : '') . '>' . $i . '</option>';
        }
    ?>
</select>

デモ

出力:

<select name="year">
    <option value="2013" selected="selected">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    ...
    <option value="1903">1903</option>
    <option value="1902">1902</option>
    <option value="1901">1901</option>
    <option value="1900">1900</option>
</select>
于 2013-08-31T16:01:36.477 に答える
1

コードは次のとおりです。

<option value="<?php echo $year; ?>" <?php echo ($year == date('Y')) ? "selected":""; } ?>  ><?php echo $year; ?></option>
于 2013-08-31T16:02:42.217 に答える
1

選択した値を取得する最良の方法は次のとおりです。連結されていない方法を使用しています。

<option value="<?php echo $year; ?>" <?php if($year == date('Y')) { echo "selected"; } ?>  ><?php echo $year; ?></option>

また、変数が適切な値を提供しているかどうかを確認してください。

于 2013-08-31T15:53:07.867 に答える