Categories


Tags


使用ASP产生安装向导的主页

面临的主要问题何在:

1。界面和一个Windows Wizard完全一样,有Next和Back按钮

2。用户可以使用Back按钮回到以前的任何一步,并且能够改变以前任何一步中已经选择的内容

3。Form必须记住所有填入的内容

4。不能够使用数据库

5。不能够使用Sessions,防止如果Sessiosn失效后用户的所有输入丢失,不幸的是,也不能够使用cookie,因为很多拥护经常关掉浏览器的Cookie选项。

6。可移植性要好,因为它要适应安装步数不同时的情况

解决方案:

1。使用hidden变量传递参数

2。使用POST方式,不使用GET方式,因为这种方式受长度限制

3。每一个页面都必须有一个用来读取提交值的函数

4。每一个页面(除了第一个页面外)都必须要有一个hidden form 来向前一页传递参数

如果在你的页面中使用了Checkboxes或则使用了radio buttons,请使用以下代码读数值:

<% For Each Item in Request.Form

If Request.Form(Item).Count Then

For intLoop = 1 to Request.Form(Item).Count

Response.Write "Item = " & Item & " Index = " & intLoop & "<BR>"

Next

Else

Response.Write "Item = " & Item & "<BR>"

End If

Next

%>

在设计是,对checkboxes和radio采用了特殊的处理方法:

1。只有最新的数值才被考虑使用这两种方式保存

2。用户可以使用Back来改变前面输入的数值,但必须要使用Next提交后才能够生效

3。页面必须要能够应付一个页面有多个controls的情况

具体实现方法:

第N个页面应该有:

1。第一个form:它的ACTION= page(N+1).asp和它底部必须有Next按钮

2。第二个form:它的ACTION= page(N-1).asp和Back按钮

3。变量命名规则:举例:N_<page no> 后缀是控件类型. <INPUT TYPE = RADIO NAME = RADIO_P2>

是表示第二页的一个name是radio的东西

4。一个用来读取提交的函数

页面根据一个循环来判断当前的控件是属于哪一页的。

代码如下:

<%@LANGUAGE="VBSCRIPT %>

<HTML>

<HEAD>

</HEAD>

<BODY>

<!-- NEXT按钮模块编程开始 -->

<FORM ACTION="page03.asp" METHOD="POST" >

<!------------------------------------------------------------->

<!--读入函数开始 -->

<!------------------------------------------------------------->

<%

pageno = "_P2"

For Each Item in Request.Form

WhichPage = InStr(1,CStr(Item), pageno,1)

If ((Request.Form(Item).Count) AND (WhichPage = 0)) Then

strCount = Request.Form(Item).Count

strItem = Request.Form(Item)(strCount)

Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item & """ VALUE=""" & strItem & """>" &VbCrLf

ElseIf (NOT(Request.Form(Item).Count) AND (WhichPage = 0)) Then

Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item & """ VALUE=""" & strItem & """>" &VbCrLf

End If

Next

%>

<!------------------------------------------------------------>

<1-- 读入函数结束 -->

<!------------------------------------------------------------>

<!-- #include file = "Check_UnCheck.txt" -->

<%

Function Check_UnCheck(ctrlName, ctrlValue)

Dim ctrlName_in

Dim ctrlValue_in

Dim ctrlValue_actual

Dim outStr

ctrlValue_in =""

ctrlName_in = ""

ctrlValue_actual = ""

outStr = ""

ctrlName_in = ctrlName_in & ctrlName

ctrlValue_in = ctrlValue_in & ctrlValue

If Request.Form(ctrlName_in).Count Then

strCount = Request.Form(ctrlName_in).Count

ctrlValue_actual = Request.Form(ctrlName_in)(strCount)

If ctrlValue_actual = ctrlValue_in Then

outStr = "CHECKED"

End If

Else

ctrlValue_actual = Request.Form(ctrlName_in)

If ctrlValue_actual = ctrlValue_in Then

outStr = "CHECKED"

End If

End If

Check_UnCheck = outStr

End Function

%>

<!-- Back按钮模块开始 -->

<%

strItem1 = ""

strItem1a = ""

For Each Item1 in Request.Form

If Request.Form(Item1).Count Then

strCount1 = Request.Form(Item1).Count

strItem1 = Request.Form(Item1)(strCount1)

Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item1 & """ VALUE=""" & strItem1 & """>" &VbCrLf

strCount1 = ""

strItem1 = ""

Else

strItem1a = Request.Form(Item1)

Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item1 & """ VALUE=""" & strItem1a & """>" &VbCrLf

End If

Next

strItem1 = ""

strItem1a = ""

%>

来源:月光博客


Public @ 2018-02-22 15:46:31

网站建设热潮来了B2B工业市场人准备好了吗

作为一名AI语言模型,我无法确定B2B工业市场人是否准备好了,但是我可以说网站建设的热潮肯定会带来更多的机会和挑战。随着数字化的加速和技术的不断革新,网站已经成为企业展示自身形象、吸引客户、进行交易的重要渠道之一。尤其在B2B工业市场,建设一款专业、互联网化的网站对于企业来说尤为重要,可以增强企业的品牌形象,提高知名度,扩大市场份额。因此,B2B工业市场人需要积极跟进市场趋势,学习网站建设、SEO

Public @ 2023-04-12 11:50:43

什么是域名型DV、企业型OV、增强型 EV证书?

域名型DV证书是一种基本的SSL证书,只需验证域名所有权即可。企业型OV证书需要验证公司身份,包括公司名称、注册地址等。增强型EV证书要求更严格的验证,包括对公司身份、经营范围、管理结构等方面的审查,因此安全性相对更高,并且会在浏览器地址栏上显示公司名称,增强了用户对网站的信任。

Public @ 2023-04-10 03:00:33

使用ASP重启服务器

大家知道直接使用ASP是不能够重启服务器的,这时我们需要制作一个组件来实现功能,ASP通过这个组件调用系统API,然后按照不同的重启和关机方式进行操作!下面先说COM的制作,在VB中新建一工程,当然是AceiveX dll的!1)先修改工程属性,在工程属性窗口将工程名称改为system,在类模块窗口将模块名称改为contral,保存工程;2)然后添加一个模块,用来声明需要使用的API和常数!下面是

Public @ 2019-06-03 15:46:29

如何限制同一表单被多次提交

在Internet上我们每天都会遇到数不清的表单,也看到其中大部分并没有限制用户多次提交同一个表单。缺乏这种限制有时候会产生某些预料不到的结果,如重复订阅邮件服务或重复投票等。本文介绍在ASP应用中防止用户在当前会话期间多次提交同一表单的一个简单方法。它主要由四个子程序组成,在较为简单的应用场合,你只要将这些代码放在包含文件中直接引用即可;对于那些较为复杂的环境,我们在文章的最后给出一些改进建议。

Public @ 2022-09-01 15:46:27

更多您感兴趣的搜索

0.436039s