2017-10-04 5 views
0

フォームの送信時にドロップダウンメニューの値を保持したい。ただし、このドロップダウンメニューは、個別の手入力値ではなく、PHPによって完全に作成されます。フォームの送信時にPHPで作成されたドロップダウンメニューの値を保持

<?php 
echo '<select name="month"><option>Month</option>'; 
for($i = 1; $i <= 12; $i++) { 
$i = str_pad($i, 2, 0, STR_PAD_LEFT); 
echo "<option value='$i'>$i</option>"; 
} 
echo '</select>'; 

ユーザーが選択した値にselected = "selected"を設定する方法はありますか?

「年」のバージョンもあり、値は100です。だから私は値を手入力することなくこれを行う方法を探しています。

+0

ところで、あなたのSELECTは1,2,3,4,5,6,7,8,9、月が表示されます、 10,11,12。わからない月がそこにあるはずです。 – Nic3500

+0

@Nicこれは、ユーザーが選択していることの兆候をユーザーに伝えるために行われることがあります。フィールドの隣にラベルを付ける代わりに。 –

答えて

1

ループスルーするときに、送信された値が現在の値と等しいかどうかを確認します。それがない場合は、それを選択:

for($i = 1; $i <= 12; $i++) { 
    $i = str_pad($i, 2, 0, STR_PAD_LEFT); 
    if ($i == $_POST["month"]) { 
     echo "<option value='$i' selected>$i</option>"; 
    } else { 
     echo "<option value='$i'>$i</option>"; 
    } 
} 
+0

完全に動作します。ありがとう! – Qwerty

0

何通常のチェックについて:

... 
for(....) { 
    printf("<option %s value='{$i}'>{$i}</option>", 
     ($i == $_POST['month']) ? 'selected' : ''); 
    } 
} 
関連する問題