0

我正在做一个下拉框,假设我们有“option1”和“option2”,下拉框选择(标记)“option1”,然后我们选择“option2”,我希望它标记“option2”在下拉框中,但它没有标记它。

我试图避免在这个上做 javascript,所以我想知道我是否只能在 PHP 上做。

建议?谢谢!

编辑。那么问题是我不知道在构建下拉菜单之前我有多少选项。我得到一个从数据库中的表生成的数组,并根据它做出选项。代码:

<select name="department">
            <?php foreach(bloggModelControler::getDepartments($_SESSION['user']) as $tempDepartment){
                if(strcmp($tempDepartment, $department) == 0){
                    $selected = ".selected='selected'.";
                }else{
                    $selected = ".selected=''.";
                }
                $dropdown = "<option \"$selected\" value=\"$tempDepartment\">\"$tempDepartment\" Selected</option>";
                echo $dropdown;
}?>         
</select>

和$部门:

<?php
        if(isset($_POST['department'])){
            $department = $_POST['department'];
        }else{
            $departments = bloggModelControler::getDepartments($_SESSION['user']);
            $department = $departments[0];
        }
    ?>
4

1 回答 1

2

根据更新的问题更新答案(包含代码)

不要将句点放在“已选择”的文本变量中。

if(strcmp($tempDepartment, $department) == 0){
                $selected = "selected='selected'";
            }else{
                $selected = "selected=''";
            }

上一个答案

在为选择框生成 HTML 的 PHP 代码中,您必须指定选择了哪个选项。

例如:

<select name="selectbox">
  <option <?php if ($_POST['selectbox'] == 'option1') echo 'selected="selected"';?>>option1</option>
  <option <?php if ($_POST['selectbox'] == 'option2') echo 'selected="selected"';?>>option2</option>
</selected>

替代语法:

<select name="selectbox">
  <option <?= ($_POST['selectbox'] == 'option1')? 'selected="selected"' : '';?>>option1</option>
  <option <?= ($_POST['selectbox'] == 'option2')? 'selected="selected"' : '';?>>option2</option>
</selected>
于 2012-04-23T15:25:11.800 回答