【问题标题】:How do I set the selected item in a drop down box如何在下拉框中设置所选项目
【发布时间】:2010-11-23 02:36:48
【问题描述】:

有没有办法使用下面的“类型”代码在下拉框中设置所选项目?

<select selected="<?php print($row[month]); ?>"><option value="Janurary">January</option><option value="February">February</option><option value="March">March</option><option value="April">April</option></select>

数据库保存一个月..我想在编辑页面上允许他们选择这个月..但是要预先填写他们当前的设置?

【问题讨论】:

    标签: php mysql select drop-down-menu


    【解决方案1】:

    需要设置正确选项标签的selected属性:

    <option value="January" selected="selected">January</option>
    

    你的 PHP 看起来像这样:

    <option value="January"<?=$row['month'] == 'January' ? ' selected="selected"' : '';?>>January</option>
    

    我通常发现创建一个值数组并循环创建一个下拉列表会更简洁。

    【讨论】:

    • Erk 抱歉,在发布我的评论之前没有看到您几乎相同的评论。我会支持你的,但留给提问者来挑选获胜者。顺便说一句,您打开的 PHP 标记有错字吗?还是&lt;?= 有效?
    • 你的成功了 :) 对我来说更有意义哈哈!
    • = 是有效的 - 它为你做一个回声
    • 我必须修改它,必须在其中添加一个 if 语句。否则无法正常工作:)
    • 在 MS Expression Web 中,我收到一条警告,指出 HTML5
    【解决方案2】:

    您在&lt;option&gt; 标记上标记所选项目,而不是&lt;select&gt; 标记。

    所以你的代码应该是这样的:

    <select>
        <option value="January"<?php if ($row[month] == 'January') echo ' selected="selected"'; ?>>January</option>
        <option value="February"<?php if ($row[month] == 'February') echo ' selected="selected"'; ?>>February</option>
        ...
        ...
        <option value="December"<?php if ($row[month] == 'December') echo ' selected="selected"'; ?>>December</option>
    </select>
    

    您可以通过将所有月份名称放在一个数组中并在它们上面使用基本的foreach 来减少重复。

    【讨论】:

    • 专业提示:将选项的文本重复为 value 声明绝对没有优势/好处。
    【解决方案3】:

    如果你使用 MySQL 数据库,可以使用这种方法:

    include('sql_connect.php');
    $result = mysql_query("SELECT * FROM users WHERE `id`!='".$user_id."'");
    while ($row = mysql_fetch_array($result))
    {
        if ($_GET['to'] == $row['id'])
        {
            $selected = 'selected="selected"';
        }
        else
        {
        $selected = '';
        }
        echo('<option value="'.$row['id'].' '.$selected.'">'.$row['username'].' ('.$row['fname'].' '.substr($row['lname'],0,1).'.)</option>');
    }
    mysql_close($con);
    

    比较$_GET['to']中的用户是否与表中的$row['id']相同,如果是,则创建$selected。这是用于私人消息系统...

    【讨论】:

    • $_GET['to'] 数据将从哪里获得?
    • @KUMAR 它将从以下 URL 获取此信息:page.php?to=34
    【解决方案4】:

    简单易懂的例子,使用三元运算符在 php 中设置选定值

    <?php $plan = array('1' => 'Green','2'=>'Red' ); ?>
    <select class="form-control" title="Choose Plan">
    <?php foreach ($plan as $id=> $value) { ?>
      <option value="<?php echo $id;?>" <?php echo ($id==  '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option>
    <?php } ?>
    </select>
    

    【讨论】:

      【解决方案5】:

      它太旧了,但我也必须添加我的方式:) 因为它是通用且有用的,尤其是当您使用静态下拉值时。

      function selectdCheck($value1,$value2)
         {
           if ($value1 == $value2) 
           {
            echo 'selected="selected"';
           } else 
           {
             echo '';
           }
           return;
         }
      

      在您的下拉选项中,您可以像这样使用此功能,并且您可以尽可能多地使用它,因为它适合您的所有选择框/下拉菜单

      <option <?php selectdCheck($row[month],january); ?> value="january">january</option>
      

      :) 我希望这个功能可以帮助别人

      【讨论】:

        【解决方案6】:

        简单的方法

        <select class ="dropdownstyle" name="category" selected="<?php print($messageeditdetails[0]['category_id']); ?>">
        
        <option value=""><?php echo "Select"; ?></option>
        
        <?php  foreach ($dropdowndetails as $dropdowndetails) { ?>
            <option <?php if($messageeditdetails[0]['category_id'] == $dropdowndetails['id']) { ?> selected="<?php echo $dropdowndetails['id']; ?>" <?php } ?> value="<?php echo $dropdowndetails['id']; ?>"><?php echo $dropdowndetails['category_name']; ?></option>
        <?php } ?>
        </select>
        

        【讨论】:

          【解决方案7】:

          这是我想出的解决方案...

          <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">   
              <select name="select_month">
                  <?php
                      if (isset($_POST['select_month'])) {
                          if($_POST["select_month"] == "January"){
                              echo '<option value="January" selected="selected">January</option><option value="February">February</option>';
                          }
                          elseif($_POST["select_month"] == "February"){
                              echo '<option value="January">January</option><option value="February" selected="selected">February</option>';
                          }
                      }
                      else{
                          echo '<option value="January">January</option><option value="February">February</option>';
                      }
                  ?>
              </select>
              <input name="submit_button" type="submit" value="Search Month">
          </form>
          

          【讨论】:

          • 不错的快速破解
          【解决方案8】:

          一个简单的解决方案: 它对我有用

          <div class="form-group">
              <label for="mcategory">Select Category</label>
              <select class="form-control" id="mcategory" name="mcategory" required>
                  <option value="">Please select category</option>
                  <?php foreach ($result_cat as $result): ?>
                  <option value="<?php echo $result['name'];?>"<?php 
                     if($result['name']==$mcategory){
                         echo 'selected';
                     } ?>><?php echo $result['name']; ?></option>
                                                  }
                  <?php endforeach; ?>
              </select>
          </div>
          

          【讨论】:

            【解决方案9】:

            检查一下:

            <select class="form-control" id="department" name="department" type="text">
                <option value="medical-furniture" @if($list->department == "medical-furniture") selected @endif>Medical furniture</option>
                <option value="medical-table" @if($list->department == "medical-table") selected @endif>Medical table</option>
                <option value="service" @if($list->department == "service") selected @endif>Service</option>
            </select>
            

            【讨论】:

              【解决方案10】:

              我的建议是利用 hidden/collapse 属性。试试这个例子:

              <select>
                  <option value="echo $row[month]" selected disabled hidden><? echo $row[month] ?></option>
                  <option value="1">Jan</option>
                  <option value="2">Feb</option>
                  <option value="3">Mar</option>
              </select>
              

              如果$row[month] 为空,则所选项目为空白且带有数据,它将包含更少的代码用于许多选项,并且始终适用于 HTML5 和引导程序等...

              【讨论】:

                【解决方案11】:

                如果你有一个大的下拉。将 jQuery 与 PHP 一起使用要容易得多。

                这是怎么做的:

                <script>
                $(document).ready(function () {
                    $('select[name="country"]').val('<?=$data[0]['Country']?>');
                });
                </script>
                

                【讨论】:

                  【解决方案12】:

                  使用 PHP 在下拉列表中选择选项的最简单解决方案如下

                  <select class="form-control" name="currency_selling" required >
                           <option value="">Select Currency</option>
                           <option value="pkr" <?=$selected_currency == 'pkr' ? ' selected="selected"' : '';?> >PKR</option>
                        <option value="dollar"  <?=$selected_currency == 'dollar' ? ' selected="selected"' : '';?> >USD</option>
                        <option value="pounds"  <?=$selected_currency == 'pounds' ? ' selected="selected"' : '';?> >POUNDS</option>
                        <option value="dirham"  <?=$selected_currency == 'dirham' ? ' selected="selected"' : '';?> >DRHM</option>
                        </select>
                  

                  【讨论】:

                    【解决方案13】:

                    你可以在选择标签后试试这个:

                    <option value="yes" selected>yes</option>
                    <option value="no">no</option>
                    

                    【讨论】:

                    • 我会考虑修改这个答案。你的回答不涉及php。
                    猜你喜欢
                    • 1970-01-01
                    • 2017-11-05
                    • 2021-08-13
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多