使用EXECUTE简化ASP处理FORM表单的提交

EXECUTE是IIS5.0中VBscript5.0的新增功能,其作用是执行一个或多个指定的语句。
语法:Execute statements
statements 参数是一个字符串表达式,其中包含一个或多个要执行的语句。

调用 Execute 语句的上下文确定了要运行的代码可以使用的对象和变量。作用域内的对象和变量是 Execute 语句中运行的代码可以使用的。不过,必须明白的一点是,如果被执行的代码创建了过程,那么该过程将不会继承它所在的过程的作用域。
与其他过程类似,新的过程的作用域是全局的,它继承了全局作用域的全部东西。与其他过程不同的是,它的上下文不是全局作用域,因此它只能在发生 Execute 语句的过程内的上下文中执行。不过,如果相同的 Execute 语句是在过程之外(例如在全局作用域)的作用域中被调用,那么它将不仅继承全局作用域中的所有东西,而且它还可以在任何地方被调用,因为它的上下文是全局的。下面的例子说明了这种特点:

Dim X 在全局作用域中声明 X。
X = "Global" 将全局的 X 赋值。
Sub Proc1 声明过程。
Dim X 在局部作用域中声明 X。
X = "Local" 对局部的 X 赋值。
此处的 Execute 语句建立了一个过程,
在调用该过程时它将打印 X。
它打印的将是全局 X,因为 Proc2
继承了全局作用域中的一切。
Execute "Sub Proc2: Print X: End Sub"
Print Eval("X") 打印本地 X。
Proc2 在 Proc1 的作用域中调用 Proc2。
End Sub
Proc2 本行将导致一个错误,因为
Proc2 在 Proc1 之外是不可使用的。
Proc1 调用 Proc1。
Execute "Sub Proc2: Print X: End Sub"
Proc2 这句话可以成功,因为 Proc2
现在是全局可用的。

下面的例子显示了如何将 Execute 语句改写,免于将整个过程包含在引号内:

S = "Sub Proc2" & vbCrLf
S = S & " Print X" & vbCrLf 
S = S & "End Sub"
Execute S

下面介绍EXECUTE在ASP处理FORM提交的表单时的应用

通常我们在ASP处理表单提交时,都是使用下面的方法:

dim company,name,email,tel,fax,web

company=Request.Form("company")
name=Request.Form("name")
email=Request.Form("email")
tel=Request.Form("tel")
fax=Request.Form("fax")
web=Request.Form("web")

作用就是把FORM提交的表单数据分别存贮在其相应的变量中,供其他处理。
如果每个表单变量都要使用表单声明并取值,是件十分麻烦的事。可以利用EXECUTE使这个过程简化:


    FOR Each item in Request.form
        Execute item & "=Trim(Request.Form("""&item&"""))"
    Next 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值