当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP进阶教程Ⅴ:留言簿在线留言编辑(二)

ASP
ASP中数据库调用中常见错误的现象和解决方法
ASP取出HTML里面的图片地址的函数
关于分页查询和性能问题
利用Asp生成整站静态
用ASP+XMLHTTP编写一个天气预报程序
轻松检测浏览器是否接受Cookies信息
净化网络环境:ASP程序实现过滤脏话
入门:防范SQL注入攻击的新办法
如何对ASP.NET进行性能优化
ASP无法更新ACCESS数据库解决方法
ASP:利用ASP把图片上传到数据库
ASP:用ASP编程实现网络内容快速查找
ASP:用ASP打造一个小型的网页BBS系统
ASP:用Asp编程实现QQ的在线情况查询
通过表单创建word的一个例子
在ASP中轻松实现记录集分页显示
ASP中实现小偷程序的原理和简单示例
ASP:6行代码实现无组件上传
实用篇:用asp实现QQ在线查询
如何轻松打造ASP计数器

ASP进阶教程Ⅴ:留言簿在线留言编辑(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 35 ::
收藏到网摘: n/a

  如何给留言簿添加在线留言编辑的功能呢?综述起来我们大致可以将其分成以下三个步骤来实现。
步骤一:首先用第八章中所介绍的给每条留言的上面添加一个“删除留言”按钮的方法,在每条留言的上面再加添一个“留言编辑”的按钮。
步骤二:实现当我们单击“留言编辑”按钮时,从留言数据库中选取对应的留言记录以供“留言编辑”,见下图:
 
  很明显,这里的关键所在就是:如何才能从留言数据库中选取对应的留言记录以供我们编辑?实现该功能的程序被我存成了文件Edit.asp,请看下面:
......
< %
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("book2.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Set cmd = Server.CreateObject("ADODB.Command")
Set CmdEdit = Server.CreateObject("ADODB.Recordset")
cmd.CommandText = "SELECT guestbook.* FROM guestbook WHERE (ID = " &             Request.QueryString("id") & ")"
cmd.CommandType = 1
Set cmd.ActiveConnection = Conn
CmdEdit.Open cmd, , 3, 1
%>
'选取ID = " & Request.QueryString("id") & ")"的留言记录,因为该程序只是打开留言,并不需要更改留言内容,所以这里设定该留言记录为只读,以免破坏数据。其它参数的意义请大家参照上一章节的资料,我在这里不再重复说明。
< % memo = CmdEdit("留言") %>
< % memo = Replace(memo,"< br>",str) %>
'将留言数据表单中“留言”字段的数据赋予留言编辑页面的memo文本域,并将数据转换成字符串,以便对其进行编辑。
......
< input type="TEXT" name="Name" size="20" value="< %=CmdEdit("姓名")%>">
......
< input type="TEXT" name="Tel" size="20" value="< %=CmdEdit("电话")%>">
......
< input type="TEXT" name="Subject" size="55" value="< %=CmdEdit("主题")%>">
......
< textarea name="Memo" rows="6" cols="60">< %= memo %>< /textarea>
......
< input type="hidden" name="ID" value="< %=CmdEdit("ID")%>">
< input type="submit" value="保存留言">
'分别将留言表单中的“ 姓名”、“电话”、“主题”和“留言”各字段的数据赋予各“留言编辑”页面中对应的文本域。
......  
步骤三:保存编辑后的留言(Editsave.asp)。
< %@ LANGUAGE="VBSCRIPT" %>
< % Response.Buffer = "True" %>
'设置将Web页面输出至缓存区。当一个Web页面输出至缓存区时,除非当前页的所有服务器端文件都已被处理完毕或者是程序中调用了Flush或End方法,服务器才将响应客户端浏览器。因此Response.Buffer一般都是放在.asp文件的第一行,放在其他位置可能会造成执行的错误。
< % ID = Request.Form("ID") %>
'获取被编辑留言的“ID”序列号。
......
< %
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("book2.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Set cmd = Server.CreateObject("ADODB.Command")
Set CmdEdit = Server.CreateObject("ADODB.Recordset")
cmd.CommandText = "SELECT guestbook.* FROM guestbook WHERE (ID = " & ID & ")"
cmd.CommandType = 1
Set cmd.ActiveConnection = Conn
CmdEdit.Open cmd, , 1, 3
%>
< % NAME = Request.Form("NAME")
if NAME="" THEN
CmdEdit.Fields("姓名") = NULL
Else
CmdEdit.Fields("姓名") = NAME
END IF %>
< % EMAIL = Request.Form("EMAIL")
if EMAIL="" THEN
CmdEdit.Fields("EMAIL") = NULL
Else
CmdEdit.Fields("EMAIL") = EMAIL
END IF %>
< % memo = Request.Form("memo")
if memo="" THEN
CmdEdit.Fields("留言") = NULL
Else
memo = Replace(memo,str,"< br>")
memo = Replace(memo,vbCr,"< br>")
CmdEdi