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的值,既:NewspaperSearchEngine等)