以下に、ページの例を示します。
ご了承ください:
- select 要素 (および任意のフォーム要素) には、投稿に含める名前が必要です。
- select 要素で選択されたオプションのみが投稿されます。
ユーザーがボックスで選択した値は?
ユーザーがフォームを送信すると、選択した値のみがサーバーに送信されます。サーバーで使用している言語に応じて、それらにアクセスするさまざまな方法があります。
ユーザーがボックスに追加したオプションは何ですか?
前に述べたように、選択されたオプションのみが表示されます。しかし、あなたのオプションとユーザーのオプションをどのように区別するのでしょうか? それは、ユーザーに送信するデータによって異なります。普遍的な答えは、送信しなかった値が返されるということです。ただし、これはデータによっては単純化できます。オプションには値とテキストの両方のプロパティがあるため、事前に生成された値に数値を使用する方法の 1 つです。そうすれば、返信では値が数値になり、ユーザーの値はテキスト文字列になります。このアプローチは、ユーザーが数値だけを入力しないことを前提としています。もう 1 つの方法は、ユーザーが生成したすべての値にプレフィックスを追加することです (すべてのオプションに値とテキスト フィールドの両方があることに注意してください)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test of select box</title>
<script type="text/javascript">
function addOpt(e) {
var o=document.createElement("option");
//o.value= -e.options.length;
o.text = "Test " + e.options.length;
o.selected=true;
e.add(o,null);
}
</script>
</head>
<body>
<form method="post" action="mypage.html">
<input type="button" onclick="addOpt(this.form.myselect)" value="Add option"/>
<br/>
<select id="myselect" name="mydata" multiple="multiple" size="10">
<option value="0">Test 0</option>
<option value="1">Test 1</option>
<option value="2">Test 2</option>
</select>
<br/>
<input type="submit"/>
</form>
</body>
</html>