2

我需要根据许多条件在 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>

所以我正在做的是仅当会话变量的两个条件之一为真时才在选择下拉列表中显示该选项。一旦选择了“某物”,则将$val2其设置为某物,并在刷新页面时将其显示为选择下拉菜单中的选定选项。

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

我做错了什么,正确的方法是什么?

4

2 回答 2

6

在我看来,您没有关闭<option>标签,我在“某事”之前添加了关闭> :

<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>

我还想提供以下更简洁的代码:

<?php
if(($_SESSION['val1'] === "value") || ($_SESSION['id'] == 5))
{
    echo '<option' . (($val2 == "Something") ? 'selected="selected"' : '') . '>Something</option>';
}
?>
于 2013-10-18T12:11:41.133 回答
2
<select class="span3" id="filter-source" autocomplete="off">
<option selected="selected">Select source</option>
<?php if( $_SESSION['val1']==="value" && $_SESSION['id']==5) { ?>
<option <?php if($_SESSION['val1'] === "value" && $_SESSION['id'] ==5) {echo 'selected="selected"';} ?>> Something</option>
 <?php }?>

于 2013-10-18T12:24:15.237 回答