获取网页表单中的下拉列表的变量值 |
今天把PHP中获取网页表单中下拉菜单变量值的方法又复习了一下
1、表单中的单选、复选、文本框等中的内容可以在PHP中直接通过$_POST["变量名"]得到。(设用POST方式)
2、如果是单选的下拉菜单,也可以通过这种方式得到。
3、但如果是复选的下拉列表,由于以下原因(摘自www.php.net),而不能直接得到
怎样从可多选的 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() 函数来对选项的数组进行排序。
注意如果你在 java script 中通过名字来引用单元,单元名字中的[]可能会造成问题。用表单单元中的数字序号来替代,或者将变量名用单引号括起来并用其作为单元数组的索引,例如:
variable = documents.forms[0].elements['var[]']; |
最后我做了以下代码以实现对下拉菜单值的获取 <? if ($_POST["Submit"]<>"") { echo $_POST["aa"]; echo "----"; echo $_POST["bb"]; echo "<br>"; $a=count($_POST["cc"]); echo "a=$a"; echo "<br>"; for ($i=0;$i<$a;$i++) { echo $_POST["cc"][$i]; echo "----"; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>无标题文档</title> </head>
<body> <form name="form1" method="post" action=""> <input name="aa" type="text" id="aa"> <select name="bb" id="bb"> <option value="10">boy</option> <option value="20">girl</option> </select> <select name="cc[]" size="3" multiple> <option value="100">zj</option> <option value="200">sh</option> <option value="300">hz</option> </select> <input type="submit" name="Submit" value="提交"> </form> </body> </html>
|
|
转载于:https://my.oschina.net/arthurdu/blog/99635