Nasıl bir HTML her seçenek içinde bir if deyimi olmadan gönderilen $_POST
verilerinden <select>
giriş olarak seçeneğe selected="selected"
biraz ekleyebilirsiniz?
Programatically, bunu şöyle yapabiliriz:
$optionNames = array('This', 'Is', 'A', 'Test');
echo '<select id="testselect" name="testselect">';
foreach($optionNames as $currentOption) {
echo '<option value="'.$currentOption.'"';
echo $_POST['testselect'] == $currentOption ? ' selected="selected"' : '';
echo '>'.$currentOption.'</option>';
}
echo '</select>';
Ben yukarıdaki kodu test etmek şu anda bir dev kutusu yok, ama Tamam olmalıdır itiraf etmeliyim. (Özür dilemek değilse.) :-)
Her seçenek için ifadesi en verimli olup olmadığını, bir kullanarak varsayalım.
Ama deyim eğer ortadan kaldırmak için seçmek istediğiniz seçeneği konumu dışında boş dizeler içeren bir dizi oluşturabilirsiniz.
$options = array(1 => 'Banana', 2 => 'Apple', 3 => 'Orange');
$selected_options = array_fill(1, sizeof($options), "");
if(array_key_exists($_POST['fruit'], $options))
$selected_options[$_POST['fruit']] = " selected=\"selected\"";
echo '<select id="fruit" name="fruit">';
foreach($options as $optionId => $optionText)
echo '<option value="'.$optionId.'"'.$selected_options[$optionId].'>'.$optionText.'</option>';
echo '</select>';