Необходимо установить атрибут 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']
содержит 'egg'. Вы можете создать помощника, который создаст для вас элементы option, например
<?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 за один раз, вместо того, чтобы вызывать его для каждого параметра в отдельности. Я оставляю это на ваше усмотрение, чтобы построить это.
Если вы не строите параметры Select динамически с помощью PHP, вы можете выбрать этот параметр, добавив на свою страницу небольшой javascript, в котором вы передадите значение, установленное для favourfood, из массива $ _POST и предложите сценарию выбрать параметр. См. Ответы на этот вопрос для возможного кода .