【问题标题】:How to make selected in the year option with php?如何使用php在年份选项中进行选择?
【发布时间】:2021-02-16 13:20:56
【问题描述】:

我想用 PHP 来选择年份选项,但我的编码不起作用。例如,如果我希望选择的年份是 2019,那么该选项将首先显示选择 2019。希望有人能指导我在哪一部分我错了。谢谢。

下面是我的代码:

<select id="year" class="form-control" name="year" title="Year">
    <option value="">Please Select</option>

<?php
$result_arr_['year'] = "2019";
if($result_arr_['year'] == true){
    $selected_year = "selected";
}else{
    $selected_year = " ";
}

for ($year = (int)date('Y'); 1900 <= $year; $year--): ?>
    <option value="<?=$year;?>" <?php echo $selected_year;?>><?=$year;?></option>
<?php endfor; ?>
</select>   

我的输出只是显示我从 1900 年开始,而不是 2019 年。

【问题讨论】:

  • 当然$result_arr_['year'] == true 是正确的,因为您刚刚在该行之前分配了一个真值(字符串值2019)......整个代码没有什么意义。多年来,此检查属于您的循环内部,而不是之前一次。
  • 如果您查看您的来源,所有内容都已被选中。那是因为您在循环之前设置了变量,并且如果 2019 为真(剧透,它是)。
  • @CBroe 感谢您的评论。你有什么想法来做一个选定的年份吗?
  • @aynber 你是对的。我被困在这里了。

标签: php option selectedvalue


【解决方案1】:

您需要在循环内部测试循环生成的每个日期

<select id="year" class="form-control" name="year" title="Year">
    <option value="">Please Select</option>

<?php
$result_arr_['year'] = "2019";

for ($year = (int)date('Y'); 1900 <= $year; $year--): 
    $selected = $result_arr_['year'] == $year ? " selected='selected' " : '';
?>
    <option value="<?=$year;?>" <?= $selected;?>><?=$year;?></option>
<?php
endfor;
?>
</select>   

【讨论】:

    猜你喜欢
    • 2014-04-14
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2023-04-08
    • 2021-08-26
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多