DropDown POST sonrasında metni korumak gerekir

1 Cevap php

Ben Form POST döndüğünde DropDown metin muhafaza edilmesini istiyoruz. Durumunu korumak için nasıl?

1 Cevap

You have to set the selected attribute on the option element.
See http://reference.sitepoint.com/html/option/selected

<form>
  <label for="favoritefood">Favorite food</label>
  <select name="favoritefood" id="favoritefood">
    <option value="che">Cheese</option>
    <option value="egg" selected="selected">Egg</option>
    <option value="cab">Cabbage</option>
  </select>
</form>

Bu öznitelik belirtilirse, $_POST dizi seçenek öğe veya value sayısal Dizini içerecek ya. Yukarıdaki örnekte, $_POST['favoritefood'] 'yumurta' içerir. Siz, örneğin sizin için bir seçenek unsurları oluşturur bir yardımcıya inşa edebileceğini

<?php
class HtmlHelper
{
    public static function option($value, $label, $selected)
    {
        $selected = ($value === $selected) ? ' selected="selected"' : '';
        return sprintf('<option value="%s"%s>%s</option>%s',
                       $value, $selected, $label, PHP_EOL);
    }
}
// Usage to get the above Selectbox options
echo HtmlHelper::option('che', 'Cheese', $_POST['favoritefood']),
     HtmlHelper::option('egg', 'Egg', $_POST['favoritefood']),
     HtmlHelper::option('cab', 'Cabbage', $_POST['favoritefood']);

Tabii ki, bunun yerine ayrı ayrı her seçenek için çağrı, tek seferde seçeneklerini ve POST dizi geçebileceği yerine selectbox yardımcı sahip olmak daha akıllı olurdu. Ben bu oluşturmak için o kadar bırakın.

PHP ile dinamik seçenekleri seçin inşa değilseniz, size $ _POST dizi favoritefood için belirlenen değer geçmek ve komut seçeneği var sayfanızda küçük bir javascript ekleyerek seçeneğini seçebilirsiniz. See the answers to this question for possible code.