【问题标题】:Option selection with PHP使用 PHP 进行选项选择
【发布时间】:2014-04-14 22:07:08
【问题描述】:

我有一个问题,我想从数据库中获取一个值,如果该值与我的选项中的值匹配,则应该选择该选项。

这是我的表格:

<!-- Select Basic -->
<div class="form-group">
  <label class="col-md-4 control-label" for="tidspunkt_varighed">Vælg Antal Timer</label>
  <div class="col-md-4">
    <select id="tidspunkt_varighed" name="tidspunkt_varighed" class="form-control">
      <option value="1">1 Time</option>
      <option value="2">2 Timer</option>
      <option value="3">3 Timer</option>
      <option value="4">4 Timer</option>
    </select>
  </div>
</div>

我不想每行都写一个 if 子句。

提前致谢。

克里斯蒂安

【问题讨论】:

  • 嗯,你几乎必须,或者应用聪明。
  • I don't want so I need to make an if every line. 这是什么意思?
  • 聪明,什么意思?
  • 聪明。这是一个php插件
  • 意味着我不想每行都有一个 if()。

标签: php select option


【解决方案1】:

您应该使用循环,因为当您在循环内使用 if() 检查已检查的值时,您的值是递增的。

【讨论】:

    【解决方案2】:
    <?php
    $options = '';
    $valueFromDb = 1;
    for($i = 1;$i<=4 ; $i++) 
    {
     if( $i  == $valueFromDb) {
    
       $options .= '<option value="'.$i.'" selected="selected">'.$i.'Time</option>';
    } else {
     $options .= '<option value="'.$i.'" >'.$i.'Time</option>';
    }
    
    }
    ?>
    
    <div class="form-group">
      <label class="col-md-4 control-label" for="tidspunkt_varighed">V�lg Antal Timer</label>
      <div class="col-md-4">
        <select id="tidspunkt_varighed" name="tidspunkt_varighed" class="form-control">
       <?php echo $options;?>
        </select>
      </div>
    </div>
    

    【讨论】:

    • 感谢您的帮助,这就像一个魅力。因此,如果我想添加类似 5 的选项,我只需在 for 循环中更改它,对吗?再次感谢
    • 绝对正确:)。如果列表很大,您还可以将选择选项存储在数据库中
    • 酷 :) 所以如果我想将选择选项存储在数据库中,我需要在哪里 $i = 1,从数据库中填写我的数据?
    • $optionFromDatabase;foreach(optionFromDatabase as $values) {if( $values == $valueFromDb) { $options .= '&lt;option value="'.$values.'" selected="selected"&gt;'.$values.'Time&lt;/option&gt;'; } else { $options .= '&lt;option value="'.$values.'" &gt;'.$values.'Time&lt;/option&gt;'; } }
    • 我不能让它工作,我应该用我的结果定义 $optionFromDatabase 吗?
    【解决方案3】:

    我认为,您可以像这样使用数组:

    <?
    $value=YOUR_VALUE_FROM_DB
    $selected[$value]="selected";
    ?>
    <option value="1" <?=$selected[1]?>>1 Time</option>
    <option value="2" <?=$selected[2]?>>2 Timer</option>
    

    等等

    【讨论】:

      【解决方案4】:

      如果您没有使用循环显示这些选项,那么您必须将 if 与每个选项一起放置,例如

      <option value="1" <?php if($dbvalue == 1){echo 'selected="selected"';}>1 Time</option>
      

      如果您使用循环显示选项,您可以在循环中放置一个条件并制作一个类似的字符串 $selected = 'selected="selected"'; 根据条件,并在每个选项中回显 $selected。

      【讨论】:

        【解决方案5】:
        $val_from_db = 3;
        
        $output = '<!-- Select Basic -->
        <div class="form-group">
          <label class="col-md-4 control-label" for="tidspunkt_varighed">Vælg Antal Timer</label>
          <div class="col-md-4">
            <select id="tidspunkt_varighed" name="tidspunkt_varighed" class="form-control">';
        
        foreach( $values as $key=>$value ) {
            if ( $key==$val_from_db )
                $selected = 'selected="selected" ';
            else
                $selected = '';
        
            $output .= '<option '.$selected.'value="'.$key.'">'.$value.'</option>';
        }
        
        $output .= '</select>
          </div>
        </div>';
        
        echo $output;
        

        【讨论】:

          猜你喜欢
          • 2017-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-21
          • 1970-01-01
          • 1970-01-01
          • 2016-05-30
          • 2012-01-30
          相关资源
          最近更新 更多