使用选定的打印不同的选项


print different option with selected

有什么建议吗?如何做相同的结果打印不同的选项,选择如下代码,但更简短?

<?php
if($UsrRow['Usr'] == '0'){
?>
<option value="0" selected="selected">a</option>
<option value="1">b</option>
<option value="2">c</option>
<option value="3">d</option>
<option value="4">e</option>
<option value="5">f</option>
<?php
}else if($UsrRow['Usr'] == '1'){
?>
<option value="0">a</option>
<option value="1" selected="selected">b</option>
<option value="2">c</option>
<option value="3">d</option>
<option value="4">e</option>
<option value="5">f</option>
}
?>
...

你能试试这个吗,

   <?php
      $Options = array(0=>'a', 1=>'b',2=>'c',3=>'d',4=>'e');
      foreach($Options as $key=>$val){ 
         $selected = "";
         if($UsrRow['Usr'] == $key){
           $selected = " selected";
         }
       echo "<option value='$key' $selected >$val</option>";
     }
  ?>

您可以使用内联连接条件:

<option value="0" <?php if($UsrRow['Usr'] == '0') echo 'selected="selected"'; ?>>a</option>
<option value="1" <?php if($UsrRow['Usr'] == '1') echo 'selected="selected"'; ?>>b</option>
<option value="2" <?php if($UsrRow['Usr'] == '2') echo 'selected="selected"'; ?>>c</option>
<option value="3" <?php if($UsrRow['Usr'] == '3') echo 'selected="selected"'; ?>>d</option>
<option value="4" <?php if($UsrRow['Usr'] == '4') echo 'selected="selected"'; ?>>e</option>
<option value="5" <?php if($UsrRow['Usr'] == '5') echo 'selected="selected"'; ?>>f</option>

创建一个数组

$arr = array('0'=>'a','1'=>'b','2'=>'c','3'=>'d','4'=>'e','5'=>'f');
foreach($arr as $k=>$v){
    $sel = "";
    if($UsrRow['Usr'] == $k){
        $sel = " selected ";
    }
    echo "<option value='$k' $sel >$k</option>";
}
<?php
$options = '';
$users = array(
    0 => 'a',
    1 => 'b',
    //all users here
);
foreach ($users as $id => $name) {
    $options .= '<option value="' . $id . '" ';
    $options .= ($UsrRow['Usr'] == $id) ? 'selected="selected">' : '>';
    $options .= $name . '</option>';
}
echo $options;
<?php
if($UsrRow['Usr'] == '0')
$select0='selected="selected"';
else if($UsrRow['Usr'] == '1')
$select1='selected="selected"';
else if($UsrRow['Usr'] == '2')
$select2='selected="selected"';
else if($UsrRow['Usr'] == '3')
$select3='selected="selected"';
else if($UsrRow['Usr'] == '4')
$select4='selected="selected"';
else if($UsrRow['Usr'] == '5')
$select5='selected="selected"';
?>
<option value="0" <?=$select0?>>a</option>
<option value="1" <?=$select1?>>b</option>
<option value="2" <?=$select2?>>c</option>
<option value="3" <?=$select3?>>d</option>
<option value="4" <?=$select4?>>e</option>
<option value="5" <?=$select5?>>f</option>

试试这个

$arr = array('a','b','c','d','e','f');
    $list='';
    foreach($arr as $value)
    {
            for($i=0;$i<=5;$i++)
                {
                if($UsrRow['Usr'] == $i)
                {
                $list.= '<option value="<?php echo $i; ?>" selected="selected"><?php echo $value; ?></option>';
                }
                else
                {
                $list.= '<option value="<?php echo $i ?>"><?php echo $value; ?></option>';
                }
                }
}