如何将选择的数据保留在<select>元素中? HTML </选择>

时间:2010-11-18 14:38:45

标签: php html

这里我有一个愚蠢的问题,希望你能帮助我。

我使用Select元素和选项创建一个菜单,如下所示:

<option selected="selected">Select type...</option>
<option value="1">Doctor</option>
<option value="2">Patient</option>

每次我需要从此菜单中选择一个值并使用旁边的提交按钮来传输数据。 但每次刷新页面时,此菜单都会显示:选择类型... 我希望它能揭示我上次选择的价值,但不知道如何。

非常感谢提前!!

6 个答案:

答案 0 :(得分:1)

您需要将selected =“selected”移动到所选选项上。

在PHP中这样做并不是太粗糙。只需检查列表中每个值的选择框的$ _POST或$ _GET(但是您发送的表单)值,例如$ _POST [“selectBox”]。找到匹配项后,在那里回显选中的=“选中”字符串。如果值为空,则将其输出为默认值。

答案 1 :(得分:1)

实现此目的的最简单方法是填充数组中的<select>选项,然后遍历它以显示<option>列表并将其标记为已选择$ _POST变量与正确值匹配:

<?php $myselect = array(1=>'Doctor', 2=>'Patient'); ?>
<select name="myselect">
   <option>Select type...</option>
   <?php foreach ($myselect as $value => $label): ?>
   <option value="<?php echo $value; ?>"<?php if (isset($_POST['myselect']) && $_POST['myselect'] == $value) echo ' selected'; ?>>
      <?php echo $label; ?>
   </option>
   <?php endforeach; ?>
</select>

答案 2 :(得分:1)

<select name="myselect">
    <?php
        $myselect = array('Select type...','Doctor','Patient');             
        for($i=0; $i<=2; $i++){
            echo "<option value=\"{myselect[$i]}\"";
            if (isset($_POST['myselect']) && $_POST['myselect'] == $myselect[$i]){ 
            echo 'selected=\"selected\"';
            }
            echo ">{$myselect[$i]}</option>";
        }
    ?>
</select>

答案 3 :(得分:0)

您必须使用您选择的服务器端语言将所选值存储在数据库,xml或文本文件中。 编辑:我想我可能误解了你的问题。

答案 4 :(得分:0)

有几种方法可以做到这一点。

在提交时,您可以将该值保存为$ _SESSION值,并使用该值设置页面加载时的选择。

使用Javascript,您可以在更改时设置cookie或更改URL以添加参数(url?selecttype = 1)并使用PHP在页面加载时设置该参数。

在quirksmode上可以很好地使用JS:http://www.quirksmode.org/js/cookies.html

答案 5 :(得分:0)

您需要更改选择哪一个以匹配请求....

 function create_select($properties, $opts)
 {
    $out="<select ";
    foreach ($properties as $propname=>$propval) {
       $out.=" $propname='$propval'";
    }
    $out.=">\n";
    foreach ($opts as $val=>$caption) {
        $out.="<option value='$value'";
        if ($_REQUEST[$properties['name']]==$val) $out.=" SELECTED";
        $out.=">$caption</option>\n";
    }
    $out.="</select>";
    return $out;
 }
 print create_select(array('name'=>'direction',
                    'id'=>'direction',
                    'class'=>'colourful',
                    'onChange'=>''),
              array('N'=>'North',
                    'S'=>'South',
                    'E'=>'East',
                    'W'=>'West'));