Простой способ выбрать выбранную опцию в <select>из значения, заданного $ _POST? - PullRequest
0 голосов
/ 16 января 2010

Как добавить бит selected="selected" к параметру в HTML <select> входных данных из отправленных данных $_POST без оператора if в каждом параметре?

Ответы [ 3 ]

0 голосов
/ 16 января 2010

Программно, вы можете сделать это так:

$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>';

Должен признаться, в данный момент у меня нет окна разработки для тестирования вышеуказанного кода, но все должно быть в порядке. (Извиняюсь если нет.): -)

0 голосов
/ 16 января 2010

Полагаю, использование оператора if для каждой опции наиболее эффективно.

Но вы можете создать массив, содержащий пустые строки, за исключением местоположения параметра, который вы хотите выбрать, чтобы исключить оператор if.

$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>';
0 голосов
/ 16 января 2010
<?php

$options = array(1 => 'Banana', 2 => 'Apple');

foreach ($options as $key => $value) {
    echo '<option value=""';
    if ($key == $_POST['fruit']) echo ' selected="selected"';
    echo '>'.$value.'</option>';
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...