选项值与正确的值不匹配

问题描述 投票:1回答:3

我有一个包含21个赛季的$seasons变量。对于每个季节,我想在html中选择一个你可以选择的选项。如果我按下提交按钮,我想要在提交之前选择的选项仍然被选中。我试着用这段代码做到这一点:

<select name="season" id="season" class="filter-season">
          <option value="all">-- Alle seizoenen --</option>
          <?php foreach($seasons as $season): ?>
          <option <?php if (isset($_GET['season']) == $season['season']){?> selected = "true" <?php }; echo "selected" ?>\value="<?php echo $season['season'] ?>"><?php echo $season['season']; ?></option>
          <?php endforeach; ?>
 </select>

问题是选项的值总是跳回到21。

php html select option selected
3个回答
3
投票

你需要

selected="selected"

代替

selected=true

<select name="season" id="season" class="filter-season">
<option value="all">-- Alle seizoenen --</option>
<?php foreach($seasons as $season): ?>
<?php
$isSelected = (isset($_GET['season']) && $_GET['season'] == $season['season']) ? 'selected="selected"' : '';
?>
<option <?php echo $isSelected;?> value="<?php echo $season['season'] ?>"><?php echo $season['season'];?></option>
<?php endforeach; ?>
</select>

1
投票

这取决于您的数组类型,但对于正常数组:

 $seasons = [
     'winter',
     'summer'
 ];
 $selected_season = isset($_GET['season']) ? $_GET['season'] : false;


 <select name="season" id="season" class="filter-season">
     <option value="all">Alle seizoenen</option>
     <?php foreach($seasons as $season): ?>
         <option value="<?= $season; ?>" <?php $season == $selected_season ? 'selected="selected"' : ''?>><?= $season; ?></option>
     <?php endforeach; ?>
 </select>

0
投票

你犯了一个错误。我重写了你的代码:

<select name="season" id="season" class="filter-season">
    <option value="all">-- Alle seizoenen --</option>
    <?php foreach($seasons as $season): ?>
        <option <?php if (isset($_GET['season']) &&  $_GET['season'] == $season['season']) echo "selected" ?> value="<?php echo $season['season'] ?>"><?php echo $season['season']; ?></option>
    <?php endforeach; ?>
</select>

您的“echo selected”调用超出了您的if语句。在您的情况下,您选择了所有选项,然后您的浏览器显示最后选择的选项,在您的情况下选项21.此外,您的if语句本身也是错误的。

我重写了你的代码。它现在检查是否设置了$_GET['season']以及$_GET['season']是否等于$season['season']

© www.soinside.com 2019 - 2024. All rights reserved.