怎样从可多选的 HTML 的 select multiple 标记中得到所有结果?

可多选的 select multiple 标记是 HTML 的一个构造,允许用户从一个列表中选择多个项目。这些项目接着被传递给该表单 action 中指定的处理程序。问题是它们都会被用同样的名字传递。例如:

<select name="var" multiple="yes">
每个被选项将这样被传递到表单处理程序:
var=option1
var=option2
var=option3
每个选项将覆盖前面一个 $var 变量的内容。解决方案是用 PHP 的“表单单元数组”特性。使用方法如下:
<select name="var[]" multiple="yes">
这将告诉 PHP 将 $var 当成数组对待,每个对 var[] 的赋值都会给数组增加一项。第一项将成为 $var[0],下一个是 $var[1],等等。可以用 count() 函数来测定选择了多少个项目,必要时可以用 sort() 函数来对选项的数组进行排序。

注意如果你在 JavaScript 中通过名字来引用单元,单元名字中的 [] 可能会造成问题。用表单单元中的数字序号来替代,或者将变量名用单引号括起来并用其作为单元数组的索引,例如:

variable = documents.forms[0].elements['var[]'];

posted on 2004-08-11 09:58  liuzhikun-cn  阅读(2894)  评论(0编辑  收藏  举报

导航