DropDown должен сохранять текст после POST

Я хочу, чтобы текст DropDown сохранялся, когда Форма возвращается из POST. Как поддерживать состояние?

Вы должны установить selected атрибут в элементе option .
См. 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> 

Массив $_POST либо будет содержать числовой индекс элемента option, либо value если этот атрибут указан. В приведенном выше примере $_POST['favoritefood'] содержит «яйцо». Вы можете создать помощника, который создает для вас элементы опции, например

 <?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']); 

Конечно, было бы разумнее иметь помощник Selectbox вместо этого, который вы можете передать параметры и массив POST за один раз, вместо того, чтобы называть его для каждой опции отдельно. Я оставляю это для вас, чтобы построить это.

Если вы не строите свои параметры выбора динамически с помощью PHP, вы можете выбрать этот вариант, добавив на свою страницу небольшой javascript, который передал значение, установленное для любимого напитка из массива $ _POST, и чтобы сценарий выбрал эту опцию. См. Ответы на этот вопрос для возможного кода .