使用PHP设置HTML选择菜单

Ano*_*non 2 html php

我需要根据许多条件在PHP下拉菜单中设置项目.

这是我的代码:

<select class="span3" id="filter-source">
    <option selected="selected">Select source</option> 
    <?php
    if (($_SESSION['val1']==="value")||($_SESSION['id']==5)) {
        echo '<option';
        if ($val2 == "Something"){
            echo 'selected="selected"';
        }
        echo'Something</option>';
    }
    ?>
</select>
Run Code Online (Sandbox Code Playgroud)

所以我正在做的是只在会话变量的两个条件为真时才在选择下拉列表中显示该选项.选择"Something"后,$val2将其设置为某个内容,在刷新页面时,它将在选择下拉菜单中显示为所选选项.

这不会导致服务器错误,但即使满足会话变量的条件,该选项也根本不会显示.

我做错了什么,做到这一点的正确方法是什么?

Luk*_*uke 6

在我看来,你没有关闭你的<option>标签,我在'Something'之前添加了关闭>:

<select class="span3" id="filter-source">
            <option selected="selected">Select source</option> 
            <?php
            if(($_SESSION['val1']==="value")||($_SESSION['id']==5))
            {
                echo '<option'; 

                if ($val2 == "Something") {
                    echo 'selected="selected"';
                }

                echo '>Something</option>';
            }
            ?>
</select>
Run Code Online (Sandbox Code Playgroud)

我还想提供以下清洁代码:

<?php
if(($_SESSION['val1'] === "value") || ($_SESSION['id'] == 5))
{
    echo '<option' . (($val2 == "Something") ? 'selected="selected"' : '') . '>Something</option>';
}
?>
Run Code Online (Sandbox Code Playgroud)