0

選択を変更したときに値を送信する選択フォームがあります。残念ながら、送信するたびにオプション「10」に戻ります。20オプションをクリックしてフォームを送信し、20のままにできるようにするには、どうすればよいですか?

コードは次のとおりです。

<form method='get' name='FormVote'>
     <select name="vote" onChange="document.forms['FormVote'].submit()">
             <option selected="selected" value='10'>10</option>
             <option value='20'>20</option>
             <option value='30'>30</option>
             <option value='40'>40</option>
     </select>
</form>

どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

1

10のオプションのselected="selected"属性のため、10のままです。

ユーザーがそれをどこに置いたかを記憶させるには、データベースからその値をフェッチしてから、PHPで次のようなことを行う必要があります。

foreach ($optionsArray as $option) {
    echo '<option ';
    if ($theOptionValue == $savedUserOptionValue)
        echo 'selected="selected"';
    echo 'value="', $theOptionValue, '>', $theOptionValue, '</option>';
}

または、AJAXを使用してフォームをサーバーに送信することもできます。その場合、ページは更新されず、オプションボックスは元の場所に留まります。

于 2012-05-31T17:44:11.813 に答える
0

Ajaxを使用するか、

<form method='get' name='FormVote' target='hidden'>
 <select name="vote" onChange="document.forms['FormVote'].submit()">
         <option selected="selected" value='10'>10</option>
         <option value='20'>20</option>
         <option value='30'>30</option>
         <option value='40'>40</option>
 </select>
</form>
<iframe name='hidden' id='hidden' style='display:none' width='0' height='0' border='0'></iframe>
于 2012-05-31T17:40:58.273 に答える