简体   繁体   English

从数据库中设置 select 默认选项

[英]Make select default option from database

i have issue with making default text in my select.我在 select 中设置默认文本时遇到问题。 (option list). (选项列表)。 So, my option is storage in database.所以,我的选择是存储在数据库中。 Like varchar Test Option Like varchar Test Option

Now if i make like this in my code现在,如果我在我的代码中这样做

 <select  name="category">  <option  selected="selected"><?=$ad['category']?></option> <?php echo $options; ?> </select>

it working, but in my list be two same values then.它工作,但在我的列表中是两个相同的值。 my full code.我的完整代码。

              <?php

                while($category = mysqli_fetch_array($q)):;

                 ?>

              <option> value="<?php echo $category[0];?>" <?php echo $category[1];?> </option>"

               <?php endwhile; ?>


                

               <select  name="category">  <option  selected="selected"><?=$ad['category']?></option> <?php echo $options; ?> </select>
                
 
<?php

My code for function q and pick value from database (all value from option is from database)我的代码 function q 并从数据库中选择值(选项中的所有值都来自数据库)

   $q2 = mysqli_query($con,$q22222);
    $options = "";
     while($row2 = mysqli_fetch_array($q2))
     {
         $options = $options."<option>$row2[1]</option>";
     }

picture what explain situation more.图片更多解释情况。 在此处输入图像描述

any idea how to solve it?知道如何解决吗? all help will be appreciated所有帮助将不胜感激

Well, the real situation is that you are fetching an array but you want that the option won't be printed.好吧,实际情况是您正在获取一个数组,但您希望不打印该选项。 Then, you first have the selected option, that is:然后,您首先选择了选项,即:

<?php $ad['category']; ?>

Then the only thing that you have to do is that when you fetch the array, if the option is equal to the selected option won't be printed so:那么您唯一需要做的就是当您获取数组时,如果选项等于所选选项,则不会打印,所以:

   $q2 = mysqli_query($con,$q22222);
    $options = "";
     while($row2 = mysqli_fetch_array($q2))
     {
         if($row2[1]!=$selected){
              $options = $options."<option>$row2[1]</option>";
         }
     }

If you don't want to fetch same options again from the database you could use an SELECT DISTINCT statement in your select query.如果您不想再次从数据库中获取相同的选项,您可以在 select 查询中使用SELECT DISTINCT语句。

And also handle the situation where the option is not same with the default one you chose.并处理选项与您选择的默认选项不同的情况。

while($row2 = mysqli_fetch_array($q2))
{
    if($row2[1] != $selected) $options = $options."<option>$row2[1]</option>";
}
<select >
    <option value="1" <?php if ($Defaultselection == 1) echo "selected"; ?>>A</option>
    <option value="2" <?php if ($Defaultselection == 2) echo "selected"; ?>>B</option>
    <option value="3" <?php if ($Defaultselection == 3) echo "selected"; ?>>C</option>
    <option value="4" <?php if ($Defaultselection == 4) echo "selected"; ?>>D</option>
</select> 

Try it试试看

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM