通过选择标记

时间:2016-10-04 13:47:40

标签: php html select option

我无法通过&显示select标签的默认值。所以,我尝试了不同的select和option标签变种,但我无法做到这一点。

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

  1. 用户可以更新此选项;或
  2. 用户可以再次选择相同的选项;或
  3. 用户根本无法更改。
  4. 上述活动的预期结果应为$ 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> 
    

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

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

    它根据需要显示表单,但在不进行选择时,它会在类别中传递空值。我之前遇到了类似类型的问题,但他们并不满意我的问题

3 个答案:

答案 0 :(得分:1)

您使用给定<option>的“已选定”属性,而不是带有值属性的<select>标记。

检查这两个:

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

另一个选项是隐藏字段,在选择字段之前具有默认值,而选择字段的隐藏选项:

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

答案 1 :(得分:1)

$categoryTemp[$i]是ID还是名字?如果它是ID并且您想要检查结果以确定要显示的默认选项,则沿着这些行的某些内容将选择等于$ categoryTemp [$ i]的值的选项。

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

因此,如果$categorytemp[$i] = 1$education_category = 1,那么该选项将被标记为已选中并在加载页面时显示

答案 2 :(得分:0)

这就是诀窍。如果未选择任何值,请将默认值作为选项

中的值传递
<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>