从$ _POST?</select>给出的值中选择<select>中所选选项的简单方法

时间:2010-01-16 16:26:47

标签: php html post html-select

如何在发送的selected="selected"数据的HTML <select>输入中将$_POST位添加到选项中,而不在每个选项中使用if语句?

3 个答案:

答案 0 :(得分:0)

<?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>';
}

?>

答案 1 :(得分:0)

以编程方式,你可以这样做:

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

必须承认我目前没有开发盒来测试上面的代码,但应该没问题。 (如果没有道歉。): - )

答案 2 :(得分:0)

我认为对每个选项使用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>';