FORM

的域对应多值的处理

有时，Form的某个域对应多个值，例如，对于checkbox类型来说，实现多项选择是最拿手的，看下面这个HTML Form。

<FORM METHOD=

“POST” ACTION=“regresults.asp”>

请问您是怎样了解到迈至科公司的？

<br><input name=

“HowHear” Type=checkbox Value=“Newspaper”>

新闻报纸以及广告

<br><input name=

“HowHear” Type=checkbox Value=“SearchEngine”>

站点搜索引擎

<br><input name=

“HowHear” Type=checkbox Value=“Friend”>

朋友介绍

<br><input name=

“HowHear” Type=checkbox Value=“Stumble”>

网上冲浪时偶然进入

<p><input type=submit value=

“ 确认进行了上述选择 ”>

</form>

这个

form就可以用来考察用户了解本公司的途径，这样就可以认识到各种媒体的不同效应。不过很可能用户有多种途径了解该公司，那么就允许用户在多个checkbox中划上对勾（如果单选，应当用radio类型），这时，HowHear键就一次对应了多个值（见图15.2）。

图15.2 多重选择的表单例子

你怎样才能把它们都接受出来呢，这时你可以利用form集合的一个附加参数。见下面这个例子：(请注意这个程序名称必须是regresults.asp对应于上一个程序的Form Action=的文件名）

<HTML>

<HEAD><TITLE>

你的响应</TITLE></HEAD>

<BODY>

根据你的回应，我们知道你了解我们公司有

<%=Request.Form(

“HowHear”).Count%>种途径。

<p>

你了解我们站点是依据：

<%

FOR EACH way in Request.Form(

“HowHear”)

Response.Write(

“<p>“&way)

NEXT

%>

</BODY>

</HTML>

在这个脚本中，Count属性用来检验复选框被选择的数目，在这里面与前面不同的是，count只是计算复选框中的选择数目而不是所有的form域提交的数目。那么这里面调用是：Request.Form(“HowHear”).count，带着参数”HowHear”。

由于使用了FOR EACH循环，那么用户的所有选择都会显示出来（显示的是Value的值，既：Newspaper、SearchEngine等）