处理表单变量最容易的方式

ASP新手入门
我钻研ASP已经很多年了,每天都跟那些代码打交道!当我工作的时候,只要遇到ASP变量,它就像是我的一个眼中钉一样,让我头痛!下面我来解释一下处理表单变量的问题。

 

<% FirstName = Request.Form("FirstName") Surname = Request.Form("Surname") Address1 = Request.Form("Address1") Address2 = Request.Fomr(Address2") ... ... %>
我认为我们应该把更多的时间花在和上面的例子一样的地方,听我的,肯定没错!为什么表单变量处理起来这么麻烦呢?我想找到了一种只用一种函数调用就能读取所有变量的方法………可是这好像不太可能!但是我还是下定决心要钻研出一种解决方法!我借助Microsoft VBscript 和Execute命令符来研究。Execute 命令基本上就是执行ASP的字符串。Execute(“Response.write “”Hello””)和response.write “hello” 效果是一样的。然后当我看到了这个新的功能,我就明白了我应该做什么了。

 

<% For Each Field in Request.Form TheString = Field & "= Request.Form(""" & Field & """)" Execute(TheString) Next %>

我们会自动设置变量。你可能不相信,只是其中的一小部分代码,就省下了我去年的很多时间。不过,它还是有缺点的,图像提交按钮传递表单变量的名称,比如“submit.X”和“submit.Y”(你点击提交图像的坐标)显然是ASP变量名称,会导致出现白色的错误页面……
不过我们还是可以避免这样的问题出现的:

<% For Each Field in Request.Form tmpField = Replace(Field,".","") '清除句号 TheString = tmpField & "= Request.Form(""" & Field & """)" Execute(TheString) Next %>

为什么在这里就要停住了?在HTML控件中有很多字符,但是在VBscript中,当自动
设置变量名称时,这些字符不能起作用。你能很容易地添加额外的行来避免其他字符的空格,连字符和其他的所有方式出现。你已经获取了多种的表单控件……你要怎么分配变量给多个选择框呢?作为一个开发者,我发现它很方便的读取了“multiple”部分表单变量到一个数组……我把上面的代码建立multiple items,并创建它们的数组:

<% For Each Field in Request.Form tmpField = Replace(Field,".","") '清除句号 ItemCount=Request.Form(Field).count IF ItemCount > 1 then execute “redim ” & field & “(” & itemcount -1 & “)” ‘动态数组 For Item = 0 To ItemCount – 1 TheString = tmpField & “(“&Item&”)= request.form(“”” & field & “””).item(” & Item + 1& “)” Next Else TheString = tmpField & “= Request.Form(“”” & Field & “””)” End If Execute(TheString) Next %>
  
我想现在你应该能感受到作为程序员的潜力了吧......大家写函数的时候要懂得怎么处理变量,请记住...表单仅仅只是一个例子,不要就只局限于此,毕竟还有像Querystrings, cookies, Session variables, Application Variables, ServerVariables。再就是recordsets (why not?) 和 dictionary objects,等等,等等。只要记住,你现在掌握的知识,将节省你大量的时间,为什么不试着写一些自己的函数呢?如果你想让函数能有选择性地处理Form, Querystring, cookies, Session, Application and Server ,你可以联系我。在调试模式下,它也有一个参数,它会显示你的变量中的所有对象,它们的值和在转换过程中他们的名称是否会出现问题。它还能把这些控件设置为列等形式。不管怎么说,如果你写出了你完成的函数,也发我一份儿,我也将会很开心的。


猜你喜欢

字节运算

2020-12-20

有多少数据被发送到在页面之间的表单操作呢? Request.TotalBytes会告诉你。试图限制从桌面上传到服务器的项目大小是特别有用的。%bytecount = Request.TotalBytesresponse.write bytecount%

ASP-条件语句

2020-12-14

有时,当我们写代码时,我们要为作出不同的决定而执行不同的操作。我们可以使用条件语句中的代码来做到这一点。条件语句是一套用于执行基于不同条件的不同动作的命令。为了支持这一点,VBScript中提供了一系列的话,

ASP BASE64加解密

2020-11-30

%' OPTION EXPLICIT const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" dim newline dim Base64EncMap(63) dim Base64DecMap(127) '初始化函数 PUBLIC SUB initCodecs(

手机电商网站实用的客服代码及调用微信

2020-11-26

手机电商网站实用的客服代码及调用微信:调用手机QQ:a href="mqq://im/chat?chat_type=wpauin=84299915version=1src_type=web" target="_blank"咨询客服/a调用微信的方法:a href="weixin://" onClick="PIWI_SUBMIT.

ASP读取、解析JSON数据

2020-11-25

第一种Jscript方式:script language="jscript" runat="server"Array.prototype.get = function(x) { return this[x]; };function parseJSON(strJSON) { return eval("(" + strJSON + ")"); }/s

通过区域来搜索数据库

2020-11-22

提供搜索数据库能让用户查询你目标哪个元件的功能。然而允许用户针对数据库的分配,他们会查询给出额外值。在这个例子中,利用我们的美国州的数据库(州,州的名称和首都),用户会搜索任何的三个区域(通过下拉菜单

X
返回
顶部