我在HTML表單上有一個提交按鈕的列表框。列表框已啓用多項選擇。我可以在列表框中選擇多個值,但我不知道如何確定提交表單時選擇了哪些值。此外,我正在使用JavaScript動態地將用戶生成的值添加到列表框中,我希望能夠在表單提交時分辨兩件事:如何發佈具有多個選定值的HTML列表框的選擇
- 用戶添加到框中的選項是什麼?
- 用戶在框中選擇了什麼值?
這可能嗎?謝謝。
我在HTML表單上有一個提交按鈕的列表框。列表框已啓用多項選擇。我可以在列表框中選擇多個值,但我不知道如何確定提交表單時選擇了哪些值。此外,我正在使用JavaScript動態地將用戶生成的值添加到列表框中,我希望能夠在表單提交時分辨兩件事:如何發佈具有多個選定值的HTML列表框的選擇
這可能嗎?謝謝。
下面你會找到一個頁面的例子。
需要注意的是:
用戶在框中選擇了什麼值?
當用戶提交表單時,只有選定的值將被髮送到服務器。根據您在服務器上使用的語言,有不同的訪問方式。
用戶添加到框中的選項是什麼?
如前所述,您只能看到選擇了哪些選項。但是,您如何區分您的選項和用戶選項?這取決於您發送用戶的數據。普遍的答案就是你沒有發回的價值。但是,這可以根據您的數據進行簡化。由於選項同時具有值和文本屬性,因此可以使用數值作爲預生成值的一種方式。這樣你的值將在回覆中是數字,用戶值將是一個文本字符串。這種方法假設你的用戶不會輸入一個數字值。另一種方法是添加前綴到所有用戶生成的值(記住你都有一個值,爲所有選項的文本字段)
<!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>
通過與尾隨方括號,PHP(以及可能的其他服務器語言命名你select
)將會把數據放到一個數組
例如:
<form action="process.php" method="post">
<select name="multiSelects[]" multiple="multiple" size="5">
<option value="0">Zero</option>
<option value="1">One</option>
</select>
<input type="submit" />
</form>
的選擇將可在陣列中$_POST['multiSelects']
這是可能的...但你使用什麼服務器端語言?因爲這似乎是你的問題的大部分是關於.. – Jack 2008-12-18 21:52:23