php
  • forms
  • 2017-10-04 132 views 0 likes 
    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

    BTW您的選擇將顯示月,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' : ''); 
        } 
    } 
    
    相關問題