如何在表单内刷新时保留PHP下拉选择?

时间:2016-09-01 23:55:39

标签: php html mysql

我希望在您提交表单时将当前选择保留在下拉列表中。我该怎么做?

我的代码:

echo '<select name="RoomSelection">';
while ($row = mysqli_fetch_array($selectroom1)) {
    echo '<option value="'.$row['Location'].'">'.$row['Location'].'</option>';
}
echo '</select>';

2 个答案:

答案 0 :(得分:1)

只需获取提交的值(来自POST或GET)。然后在<option>内添加一个条件。检查当前迭代值是否等于所选值:

基本理念:

$selected_value = isset($_POST['RoomSelection']) ? $_POST['RoomSelection'] : '';

echo '<select name="RoomSelection">';
while ($row = mysqli_fetch_array($selectroom1)) {
    $selected_attribute = ($selected_value === $row['Location']) ? 'selected="selected"' : '';
    echo '<option value="'.$row['Location'].'" $selected_attribute>'.$row['Location'].'</option>';
}
echo '</select>';

答案 1 :(得分:0)

很简单:

echo '<select name="RoomSelection">';
while ($row = mysqli_fetch_array($selectroom1)) {
    echo '<option value="'.$row['Location'].'"';
    if($_POST['RoomSelection']==$row['Location']) echo ' SELECTED '; 
    echo '>'.$row['Location'].'</option>';
}
echo '</select>';

如果值等于post值,则只写SELECTED。如果您的表单处于POST方法中,则必须在GET中进行调整。