提交后选择了下拉菜单,但在今年是第一次[重复]。

问题描述 投票:0回答:2

我有一个问题。我想用PHP创建一个下拉菜单,显示mit currentYear-2和currentYear+2。我创建了下拉菜单,但在选择和提交年份后,它又开始与未提交的年份。

我想,如果页面正在加载的下拉菜单开始与当前的一年,然后在更改和提交与选定的年份。

非常感谢

获取和设置年份的PHP函数。

function getCurrentYears(){
    $thisYear = date("Y");

    for($i=($thisYear-2); $i<($thisYear+3); $i++){
        echo "<option value='" .$i. "'>" .$i. "</option>";
    }
}

调用该函数的HTML。

<div>
<label for="chooseYear"> Choose a year </label>
     <select name="chooseYear" id="chooseYear" class="form-control">
       <option value='-'>-</option>
       <?php getCurrentYears(); ?>
    </select>
</div>
php html forms dropdown selected
2个回答
1
投票

你错过了添加 selected 钥匙 select 输入.另外,我建议你不要把视图和PHP代码混用。

<?php declare(strict_types=1);

function getYearsFromRange($yearsRange): array
{
    $currentYear = (int) date('Y');
    $years = [];

    foreach ($yearsRange as $year) {
        $years[] = ['year' => $year, 'selected' => ($year === $currentYear)];
    }

    return $years;
}

和HTML脚本。

<div>
    <label for="chooseYear"> Choose a year </label>
    <select name="chooseYear" id="chooseYear" class="form-control">
        <?php foreach (getYearsFromRange(range(date('Y') - 2, date('Y') + 3))
            as ['year' => $year, 'selected' => $selected]
        ): ?>
            <option value="<?php echo $year;?><?php echo ($selected) ? ' selected' : '';?>>
                <?php echo $year; ?>
            </option>
        <?php endforeach; ?>
    </select>
</div>

0
投票
  $selected = ( $i == $row1['year'] ? ' selected' : '' );
   echo "<option value ='".$i."'".$selected.">".$i."</option>" ;

而$row1['year']是数据库中的值。只有当你提交数据库中的年份时,这才会有效。


0
投票

你可以使用 selectedselected="selected'option 标签

函数getCurrentYears(){ $thisYear = date("Y")。

  for($i=($thisYear-2); $i<($thisYear+3); $i++){
        if($i == $thisYear){
            echo "<option value='" .$i. "' selected>" .$i. "</option>";
        }
        else{
             echo "<option value='" .$i. "' >" .$i. "</option>";
        }
    }
    }
© www.soinside.com 2019 - 2024. All rights reserved.