【问题标题】:PHP show drop down selected based on value [closed]PHP显示基于值选择的下拉菜单[关闭]
【发布时间】:2013-06-16 22:49:09
【问题描述】:

我想显示为来自数据库的某个值选择的下拉列表。

    <select name="plans">
       <option>MAP</option>
       <option>CP</option>
       <option>CPA</option>
       <option>CPF</option>
    </select>

在 PHP/Mysql 中从数据库中读取一个值,比如说“CPA”,我如何显示这个选项被选中?

【问题讨论】:

  • 您还需要为每个选项提供选项值,然后您需要检查每个选项
  • 你的意思是'

标签: php select drop-down-menu


【解决方案1】:

您需要在HTML 中使用selected 属性。

例如,如果您从数据库中获得的值被分配给一个变量,比如$val

那么你可以这样做:

<select name="plans">
       <option <?php echo ($val == 'MAP')?"selected":"" ?> >MAP</option>
       <option <?php echo ($val == 'CP')?"selected":"" ?> >CP</option>
       <option <?php echo ($val == 'CPA')?"selected":"" ?> >CPA</option>
       <option <?php echo ($val == 'CPF')?"selected":"" ?> >CPF</option>
 </select>

【讨论】:

  • 你们遇到过多少次了?你开始回答一个 SO 问题,当你几乎完成时,另一个伟大的贡献者会出现或多或少相同的答案,而所花费的时间是徒劳的。这就是 SO 的伟大之处。快速且通常准确的答案。
  • 也许我们需要一个工具来查看目前有多少人正在写答案。
  • @Henkealg 这件事发生在我身上很多次了 :-)
【解决方案2】:

你搜索

<option selected>CPA</option>

我建议您通读一些 HTML 初学者指南。

【讨论】:

    【解决方案3】:

    这样试试

    <select name="plans">
       <option <?php echo ($value == "MAP")?"selected":"" ?> >MAP</option>
       <option <?php echo ($value == "CP")?"selected":"" ?> >CP</option>
       <option <?php echo ($value == "CPA")?"selected":"" ?> >CPA</option>
       <option <?php echo ($value == "CPF")?"selected":"" ?> >CPF</option>
    </select>
    

    【讨论】:

    • 投反对票有什么必要……??
    • 讲道理也是礼仪.....
    • 它应该是必需的!
    • 版主需要控制这个...它发生在我身上几乎 5 到 6 次
    • SO 工作人员总是说社区应该帮助自己。所以我现在赞成让它平等:D
    【解决方案4】:

    您需要在&lt;option&gt; HTML 标记中使用selected 属性。

    完整代码:

    <?php
    
        $dbValue = 'CPA';
    
        $options = array
        (
            'MAP' => 'MAP',
            'CP' => 'CP',
            'CPA' => 'CPA',
            'CPF' => 'CPF'
        );
    
        echo '<select name="plans">';
    
        foreach ($options as $value => $option)
        {
            $selected = $value == $dbValue ? 'selected="selected"' : '';
            echo "<option {$selected} value=\"{$value}\">{$option}</option>";
        }
    
        echo '</select>';
    
    ?>
    

    【讨论】:

      【解决方案5】:
      $row->will contain the name of plans after query execution 
      
      <select name="plans">
             <option value="MAP" <?php if($row['plans']=="MAP") echo selected;?>>MAP</option>
             <option value="CP" <?php if($row['plans']=="CP") echo selected;?>>CP</option>
             <option value="CPA">CPA</option>
             <option value="CPF">CPF</option>
          </select>
      

      【讨论】:

        【解决方案6】:

        selected填入你想被选中的选项。

        喜欢:

        <select name="plans">
           <option>MAP</option>
           <option>CP</option>
           <option selected>CPA</option>
           <option>CPF</option>
        </select>
        

        当您构建上述列表时,您会检查每个选项是否是数据库中的选项。如果是,则添加 selected

        【讨论】:

          【解决方案7】:

          试试这个作为例子。

          //$val = Value from database;
          
          <select name="plans">
                 <option <?php if(isset($val) && $val=="1") {?> selected="selected"<?php } ?> value="1" >MAP</option>
                 <option <?php if(isset($val) && $val=="2") {?> selected="selected"<?php } ?> value="2" >CP</option>
                 <option <?php if(isset($val) && $val=="3") {?> selected="selected"<?php } ?> value="3" >CPA</option>
          
           </select>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-07-16
            • 1970-01-01
            • 1970-01-01
            • 2020-01-19
            • 2012-10-27
            • 1970-01-01
            • 2011-11-23
            • 2019-05-28
            相关资源
            最近更新 更多