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等)