-4

以下のコードを使用して、ドロップダウンのオプション値を自動入力しています。30番を選択させようとしています。現在、数字の 30 が順番どおりに 2 回表示されていません。30 が事前に選択された状態で 18 ~ 75 を表示するシーケンスを取得するにはどうすればよいでしょうか。

<select name="age2" class="numb">
<?php 
for ($k = 18; $k <= 75; $k++) 
echo '<option value='.sprintf("%02d", $k).'>'.sprintf("%02d", $k).'</option>'; 
echo '<option value=30 selected>30</option>';
?>
</select>
4

6 に答える 6

4

以下のコードを使用

<select name="age2" class="numb">
<?php 
for ($k = 18; $k <= 75; $k++) {
    $selected = '';
    if($k == 30){
        $selected = 'selected="selected"';
    } else {
        $selected = '';
    }
    echo '<option value='.sprintf("%02d", $k).' '.$selected.' >'.sprintf("%02d", $k).'</option>'; 

}
?>
</select>
于 2013-07-01T06:26:24.667 に答える
3

正しい方法は

<select name="age2" class="numb">
<?php 
for ($k = 18; $k <= 75; $k++) 
{
  if($k!=30)
  {
   echo '<option value='.sprintf("%02d", $k).'>'.sprintf("%02d", $k).'</option>'; 
  }
  else
  {
   echo '<option selected="selected" value='.sprintf("%02d", $k).'>'.sprintf("%02d", $k).'</option>'; 
  }
}   
?>
</select>
于 2013-07-01T06:18:05.507 に答える
3

反復ごとに値をチェックし、値が 30 の場合はエコーするだけです。

<select name="age2" class="numb">
<?php 
for ($k = 18; $k <= 75; $k++){
  $value = sprintf("%02d", $k) ; ?>
  <option value='<?php echo $value ; ?>' <?php echo ($value == 30) ? "selected" : "" ; ?>><?php echo $value ; ?></option> 
<?php } ?>
</select>
于 2013-07-01T06:21:35.973 に答える
1

30いくつかの条件に入れなければならない各ループ反復にオプションを追加しています

    <select name="age2" class="numb">
<?php 
for ($k = 18; $k <= 75; $k++) {
if($k ==30)
{
 echo '<option selected="selected" value='.sprintf("%02d", $k).'>'.sprintf("%02d", $k).'</option>'; 

}
else
{
  echo '<option value='.sprintf("%02d", $k).'>'.sprintf("%02d", $k).'</option>'; 
}  

} 
?>
</select>
于 2013-07-01T06:21:58.220 に答える
1
<select name="age2" class="numb">
<?php 
for ($k = 18; $k <= 75; $k++) 
 echo '<option value='.sprintf("%02d", $k).  (if($k==30)?'selected="selected"':"").'>'.sprintf("%02d", $k).'</option>'; 
 }
?>
</select>
于 2013-07-01T06:22:47.303 に答える