- 打印本文 关闭窗口
- ASP与SQL网站数据库程序设计(15)
- 作者:.. 文章来源:科学出版社 点击数: 更新时间:2004/1/25 1:03:54
- 第55行:“id="Out<%=I+1%>"”这是一个组合的内容。其内容将会随着数值不断增加,内容将会是“id="Out1"”~“id="OutN"”。
第101行:根据上述所产生的“id="OutN"”自动在这个字符串的最后加上“a”,用以区别CSS的属性。在“id”最后加上“a”的程序代码则在第58行(产品名称的显示)。
有关“javascript语法”、“CSS”部分,请读者自行参考相关的书籍。
至此,如果用户在重新编写“Function.asp”程序之后,所有的细节都已经注意到的话,“Function.asp”即可达成本范例的表现形式。
14-3 Cookies的处理
在正式进入“ProductShow.asp”程序的运行说明之前,由于这个程序主要在于处理Cookies的信息,因此必须对“PdRequest.inc”先行说明,以下是“PdRequest.inc”的程序内容。
程序内容
01: <%
02: ExpDate = Cstr(dateadd("d" , 7 , date ))
03: Response.Cookies ("MoreInfo").Expires = ExpDate
04: Cookies = Request.Cookies("MoreInfo")
05: If request.querystring("MoreInfo") <> "" then
06: If Trim(Cookies) <> "" Then
07: Cookies = Cookies & "," & request.querystring("MoreInfo")
08: Else
09: Cookies = request.querystring("MoreInfo")
10: End If
11: Else
12: If Cookies = "" Then
13: Cookies = ExpDate
14: End If
15: end if
16: Response.cookies("MoreInfo") = Cookies
17: Datas = Split(Cookies , ",")
18: %>
程序说明
第2行:取得与使用日期差距“七天”的正确日期,使用的是“dateadd”函数,并且在取得“七天后”的日期后,将结果转换成字符串并存放到“ExpDate”变量中。
第3行:设置“MoreInfo”Cookies的有效期限为上述取得的日期。
第6~15行:如果在网页中没有“ProductShow.asp”所产生的“更多信息”的选项时,将不会对“MoreInfo”的Cookies变量进行更新动作。如果选择这个选项,则自动判断Cookies的内容并进行更新“%2C”为ASCII码的“44”,即为“,”。
第12~14行:如果客户端没有产生详细信息的需求,同时客户端的Cook-ies内容也是“空白”时,则将Cookies的内容以Cookies“到期日”取代。
第16行:将运算之后的内容,重新写回客户端。
14-4 动态产品展示
这个系统与“Function.asp”间唯一的关联在“Function.asp”程序的第69行。例如上述程序说明中“第69行”的部分,其传送进来的内容是“Classify No=0001# 0001000001”。
当ASP程序以QueryString方法接受到这种数据时,将会自动删除“#”之后的数据(包含“#”在内)。由于这种传递方式是通知浏览器自动将画面卷动到“#”之后的超级链接名称上,因此对于ASP程序而言,本段的处理方式是“不予理会”。“ProductShow.asp”
14-4-1 基本功能设置
在这个程序段中,笔者设置了“包括文件的置入”、“网页的表现方式”以及“记录取得条数的设置”等基本信息。以下是这段程序的实际内容与说明。
“ProductShow.asp”程序段
01: <!-- #include virtual="/PdRequest.inc" -->
02:
03: <%
04: Response.Expires = 0
05: MaxRecords = 500
06:
07: ' ProductShow 展示产品的内容
08: Set OBJConn = Server.CreateObject("ADODB.Connection")
09: OBJConn.Open "Trade", "test", "test1"
10: On Error Resume Next
程序说明
第1行:将“PdRequest.inc”程序代码包括进来。
第4行:设置网页的内容不暂存在客户端。由于“Products.asp”的内容会根据用户的选择随时变化,为了避免“残留(直接从客户端上取出曾经浏览过的内容)”现象的发生,笔者建议用户使用这种方式。
第5行:设置最大记录查询条数(试想:单一类别具有500种不同的产品时,那么产品属性上的分类一定没有规划好!)
14-4-2 相关资料的取得
在执行这个程序段之后,将可以取得如下相关信息:
· 全图预览方式。
· 特定产品类别的产品详细信息。
· 币别信息的取得。
以下是这个程序段的实际内容与说明:
“ProductShow.asp”程序段
12: SQL = "Select 全图预览方式 From 系统信息"
13: Set Rs = OBJConn.Execute(SQL)
14: FullViewMethod = rs.Fields("全图预览方式")
15:
16: SQL = "Select * from 产品基本信息 Where 类别编号 = " & request.querystring("ClassifyNo") & " order by 产品代号"
17: Set Rs = OBJConn.Execute(SQL)
18: datas = rs.getrows(500)
19: SQL = "Select * from 产品类别 where 类别编号=" & request.querystring("ClassifyNo")
20: Set rs = OBJConn.Execute(SQL)
21: ClassifyNo = rs.fields("类别编号")
22: ClassifyName = rs.fields("类别名称")
23:
24: SQL = "Select * From 币别信息 Order by 币别代号"
25: Set rs = OBJConn.Execute(SQL)
26: if not rs.eof then
27: Currencies = rs.getrows(MaxRecords)
28:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
- 打印本文 关闭窗口