选择表单,使选项在提交后保持选中状态

时间:2014-04-28 12:41:54

标签: php select input while-loop echo

我有这样的表格:

<form method="post">
<fieldset>
    <select name="taskOption" required>
    <option value="" disabled selected>Choose group</option>

    <?php

    while($hej < count($hejsan)) {
        echo '<option value=' . $hej . '>' . $hejsan[$hej] . '</option>';
        $hej++;
    }

    ?>

    </select>


    <input type="submit" value="Find bookings">
</fieldset>
</form>

当我按下提交按钮时,选择/选项将重置为默认值,如何更改此选项并使其保持为我选择的状态?

4 个答案:

答案 0 :(得分:0)

您需要查看已选择的选项并进行相应的选项selected。由于您的表单指向同一页面,因此您只需查看$_POST

的内容即可

P.S。:同样,您会发现在每个选项之后回显换行符以使输出更具可读性是有用的。

答案 1 :(得分:0)

试试这个:

<?php
$taskOption = '';
if (isset($_POST['taskOption']) {
  $taskOption = $_POST['taskOption'];
}
?>
<form method="post">
<fieldset>
    <select name="taskOption" required>
    <option value="" disabled selected>Choose group</option>

    <?php

    while($hej < count($hejsan)) {
        if ($hey == $taskOption) {
            echo "<option value={$hey} selected>{$hejsan[$hej]}</option>";
        } else {
            echo "<option value={$hey}>{$hejsan[$hej]}</option>";
        }
        $hej++;
    }

    ?>

    </select>


    <input type="submit" value="Find bookings">
</fieldset>
</form>

答案 2 :(得分:0)

在if if语句中。如果选项值等于select,则添加selected =“selected”

这是一个示例代码。可能是操作员错了,我总是与当时较大和较小的操作员混淆。

<?php

$option_value = 5;

for($i=0; $i > 10; $i++){
    if($option_value == 5){
        echo '<option value="'.$i.'" selected="selected">Item number'.$i.' is selected</option>';
    } else {
        echo '<option value="'.$i.'">Item number'.$i.'</option>';
    }
}


?>

答案 3 :(得分:0)

试试这个

 if (isset($_POST['taskOption'])) {
    $Option = $_POST['taskOption'];
   }
while($hej < count($hejsan)) {
        if($hej==$_POST['taskOption']){
           $selected = "selected=selected";
         }else{
           $selected = "";
         }
    echo '<option value="' . $hej . '" '.$selected .'>' . $hejsan[$hej] . '</option>';
    $hej++;
}