2010-11-18 49 views
2

這裏我有一個愚蠢的問題,希望你能幫助我。如何將選定的數據保存在<select>元素中? HTML

我創建一個使用選擇元素和選項這樣的菜單:每次我需要從這個菜單中選擇一個值,並使用提交按鈕旁邊傳輸數據的時間

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

和。 但每次頁面刷新時,此菜單將顯示:選擇類型... 我希望它揭示我上次選擇的值,但不知道如何。

非常感謝提前!

+0

+1對於'選擇'。這是我最喜歡的單詞:) – MrMisterMan 2010-11-18 14:54:45

回答

1

您需要將selected =「selected」移動到選定的選項上。

在PHP中這樣做並不太粗糙。只需檢查您的選擇框的$ _POST或$ _GET(但是您發送了表單)值,如列表中每個值的$ _POST [「selectBox」]。當你找到一個匹配時,在那裏回顯出selected =「selected」字符串。如果該值爲空,則將其輸出爲默認值。

+0

沒問題,男人! – DampeS8N 2010-11-18 15:46:35

0

您必須使用您選擇的服務器端語言將所選值存儲在數據庫,xml或文本文件中。 編輯:我想我可能誤解了你的問題。

0

有幾種方法可以做到這一點。

提交時,您可以將該值保存爲$ _SESSION值,並使用該值設置頁面加載時的select。

使用Javascript,您可以更改cookie或更改url來添加參數(url?selecttype = 1),並使用PHP在頁面加載時設置。

有一個在JS的好cookies的使用上怪異模式:http://www.quirksmode.org/js/cookies.html

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> 
+0

非常感謝!它解決了我的問題 – manxing 2010-11-18 15:42:59

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')); 
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> 
相關問題