在PHP下拉列表中选择默认选项

在PHP下拉列表中选择默认选项,php,html,html-select,Php,Html,Html Select,这可能比我想象的要简单得多,但我似乎无法理解 我有以下代码,这是图像结果列表的一部分: <option value="30" <?php echo ($_SESSION['results']== 30) ? 'selected' : ''; ?>>30</option> <option value="40" <?php echo ($_SESSION['results']== 40) ? 'selected' : ''; ?&g

这可能比我想象的要简单得多,但我似乎无法理解

我有以下代码,这是图像结果列表的一部分:

<option value="30" <?php echo ($_SESSION['results']== 30) ?  'selected' : ''; ?>>30</option>
        <option value="40" <?php echo ($_SESSION['results']== 40) ?  'selected' : ''; ?>>40</option>
        <option value="50" <?php echo ($_SESSION['results']== 50) ?  'selected' : ''; ?>>50</option>
        <option value="60" <?php echo ($_SESSION['results']== 60) ?  'selected' : ''; ?>>60</option>
        <option value="70" <?php echo ($_SESSION['results']== 70) ?  'selected' : ''; ?>>70</option>
        <option value="80" <?php echo ($_SESSION['results']== 80) ?  'selected' : ''; ?>>80</option>
        <option value="90" <?php echo ($_SESSION['results']== 90) ?  'selected' : ''; ?>>90</option>
>40
>60
>80

一个更干净的方法是:

<?php
session_start();  //Start session

$_SESSION['results'] = $_SESSION['results'] ? $_SESSION['results'] : 80;   //Check and set the session variable else default it to 80

$numbers = [30, 40, 50, 60, 70, 80, 90];   //Initialize your array

?>
<select name="test">
    <?php
    foreach ($numbers as $num) {      //Loop through the array and populate your select box.
        ?>
        <option value="<?php echo $num; ?>" <?php echo ($_SESSION['results'] == $num) ? 'selected' : ''; ?>><?php echo $num; ?></option>
        <?php
    }
    ?>
</select>


“默认值当然是40”是吗?不是根据我看到的。在你发布代码之前的某个地方,
$\u SESSION['results']
的值正在设置。正是在那里,40很可能被设定,你需要在那里做出改变。正如Patrick所说,您发布的内容中没有默认值为40。我唯一看到的是:$\u SESSION['results']=(!isset($\u SESSION['results'])?$\u SESSION['results']:(isset($\u GET['results'])?$\u GET['results']:$\u SESSION results['results']);然后再往回走。。。在任何调用此代码所在的代码中。调用此代码时,在URL中设置了会话值。我认为三元语句并没有达到您所认为的效果。最好使用if/else语句来更好地理解。