简体   繁体   English

用PHP选择选项

[英]Option selection with PHP

I have a problem, where I want to get a value from the database, and if the value matches the one in my option, the option should be selected. 我有一个问题,我想从数据库中获取一个值,如果该值与我的选项中的值匹配,则应该选择该选项。

This is my form: 这是我的表格:

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

I don't want to make an if clause every line. 我不想在每一行都使用if子句。

Thanks in advance. 提前致谢。

Kristian 克里斯蒂安

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

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

I think, you can use an array somehow like that: 我认为,您可以像这样使用数组:

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

etc. 等等

if you are not displaying these options using a loop then you have to put if with every option like 如果您不使用循环显示这些选项,则必须将if与每个选项

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

and in case you are showing options using a loop you can put a condition in the loop and make a string like $selected = 'selected="selected"'; 如果使用循环显示选项,则可以在循环中放置一个条件,并生成类似$ selected ='selected =“ selected”'的字符串; based on the condition, and echo $selected with every option. 根据条件,并在每个选项中回显$ selected。

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

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

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