通过 select 标签显示默认值

Displaying default value through select tag

我在传递和显示 select 标签的默认值时遇到问题。因此,我尝试了 select 和选项标签的不同变体,但我无法做到这一点。

我想以下拉菜单的形式获取不同的选项。我想在其中显示一个默认值。 (代码中的 $categorytemp[$i])。在显示表格时

  1. 用户可以更新此选择;或
  2. 用户可以再次select同样的选择;或
  3. 用户根本无法更改它。

上述activity的预期结果应该是更新,更新,$category

的默认值

下面是我的代码截图

<select name="category" value="<?php echo $categorytemp[$i] ?>">



                                <?php 

                                    $sql = "SELECT * FROM education_details";
                                    $result = mysqli_query($conn, $sql);
                                        while($row = mysqli_fetch_assoc($result)) 
                                            {
                                                $education_category = $row["id"];
                                                $education_name= $row["name"]; 
                                                ?>
                                                <option value='<?php echo $education_category?>'><?php echo $education_name;?></option>
                                                <?php
                                            }
                                ?>
                                </select> 

我尝试使用带有 selected 属性的选项标签,但这让事情变得更加复杂。例如,如果我使用

<select name="category" value="<?php echo $categorytemp[$i] ?>">
                            <option selected="selected"><?php echo $categorytemp[$i]; ?> </option>


                                <?php 

                                    $sql = "SELECT * FROM education_details";
                                    $result = mysqli_query($conn, $sql);
                                        while($row = mysqli_fetch_assoc($result)) 
                                            {
                                                $education_category = $row["id"];
                                                $education_name= $row["name"]; 
                                                ?>
                                                <option value='<?php echo $education_category?>'><?php echo $education_name;?></option>
                                                <?php
                                            }
                                ?>
                                </select> 

它根据需要显示表单,但在没有 selection 时,它在类别中传递空值。我已经完成了之前提出的类似类型的问题,但他们并没有让我满意地回答我的问题

您使用给定 <option> 的 "selected" 属性来执行此操作,而不是在具有值属性的 <select> 标记中执行此操作。

检查这两个:

您是否考虑过在表单提交上使用 Javascript 来实现它?

另一个选项是 select 之前具有默认值的隐藏字段和 select 字段的隐藏选项:

<html>
<head>
<body>
<form method="POST" action="">
<input type="hidden" name="dropdown" value="default" />
<select name="dropdown">
<option selected disabled hidden style="display: none" value="default"></option>
<option>1</option>
<option>2</option>
<input type="submit" value="send" />
</form>
</body>
</html>

$categoryTemp[$i]是ID还是名字?如果它是 ID 并且您想要对照它检查结果以确定要显示的默认选项,那么沿着这些行的东西将 select 等于 $categoryTemp[$i].[ 的值的选项。 =14=]

<option <?php echo ($categorytemp[$i] == $education_category ? 'selected' : ''); ?>

所以如果 $categorytemp[$i] = 1$education_category = 1 那么该选项将被标记为 selected 并在页面加载时显示

这成功了。当没有选择任何值时,将默认值作为选项

中的值传递
<select name="category" >
                        <option value='<?php echo $categorytemp[$i]?>'><?php echo $categorytemp[$i]; ?> </option>


                            <?php 

                                $sql = "SELECT * FROM education_details";
                                $result = mysqli_query($conn, $sql);
                                    while($row = mysqli_fetch_assoc($result)) 
                                        {
                                            $education_category = $row["id"];
                                            $education_name= $row["name"]; 
                                            ?>
                                            <option value='<?php echo $education_category?>'><?php echo $education_name;?></option>
                                            <?php
                                        }
                            ?>
                            </select>