刷新后从动态下拉列表中维护选择值

use*_*236 9 html php html5 netbeans selected

我有一个由11个元素组成的表单(输入选择标签).表单具有表单验证,当用户输入不正确的数据时,该表单验证会在字段旁边提示错误消息.我希望在刷新页面后保持输入到字段中的正确数据.

例如,假设正确填充的10个字段和1个字段不正确.当用户按下提交按钮时,字段附近会显示错误消息.我想要做的是保持选择10个正确的值,这样用户就不必重新开始了.

对于输入元素,这工作正常,但对于选择元素,这是行不通的. 重要的是我使用PHP动态填充下拉列表.

这可能在PHP中做,因为我无法弄清楚如何?

下面是我如何生成select元素的下拉列表的示例.

    select name="location">
  <?php
     include("../includes/db_connect.php"); 
     $sql_loc = "SELECT description FROM location ORDER BY description ASC";
     $result_loc = mysqli_query($connection, $sql_loc);

     if(mysqli_num_rows($result_loc) > 0){
       while($row = mysqli_fetch_assoc($result_loc)){
       echo '<option value="' . htmlspecialchars($row['description']) . '">' 
       . htmlspecialchars($row['description']) 
       . '</option>';
     }
    }                                             

      ?> 
    </select>
Run Code Online (Sandbox Code Playgroud)

至于输入元素,我使用以下内容实现此目的:

<input type="text" name="serial" value="<?php echo $serial;?>">
Run Code Online (Sandbox Code Playgroud)

Mar*_*ddy 3

尝试这个:

<select name="location">
    <?php
        include("../includes/db_connect.php"); 
        $sql_loc = "SELECT description FROM location ORDER BY description ASC";
        $result_loc = mysqli_query($connection, $sql_loc);

        if(mysqli_num_rows($result_loc) > 0){
            while($row = mysqli_fetch_assoc($result_loc)){
                $selected = "";
                if ($row['description'] == $location) {
                    $selected = " selected";
                }
                echo '<option value="' . htmlspecialchars($row['description']) . '"' . $selected . '>' 
                . htmlspecialchars($row['description']) 
                . '</option>';
            }
        }                                             
    ?> 
</select>
Run Code Online (Sandbox Code Playgroud)