在我们建站过程中,大多时候需要用到向服务器提交、获取表单(form)内容,典型的例子就是留言本程序。假如你使用html做一个大型的桌面、软件下载站点,那么每天的更新就成了最头疼的事:更新资料太多,需要一项一项地往页面表格中填写软件名称,做下载超链接,十分麻烦。相反地使用asp建站就方便的多,直接获取数据库中的最后添加内容,自动往网页相应位置插入相应数据,而不用你亲自动手。这种方法还可以应用到很多地方,比如我们个人站点里站长门每天的日记本……
下面就使用Macromedia UltraDev的强大插件系统Data Bindings和 Server Behaviors做一个从数据库获取数据的例子。我们来做一个留言本的显示留言页面部分,它动态获取了填写留言时输入数据库的姓名,电子邮件,主页地址,OICQ,留言主题,留言内容等数据选项。之前需要的创建数据库表格,DSN连接池等设置,因为题目限制,所以在这里忽略以上部分。以下所说数据库指Macrosoft Access2000创建的数据库。
第一步:首先使用Dreamweaver或者UltraDev做一新页面,File→New window,然后save,名称假设为index.html。此时页面是html格式的,在下面有一部分很重要,所以先在这里强调一下。
第二步:在UltraDev中打开刚刚建好的index.html。现在我们要做的就是从ODBC中导入连接好的数据库。按热键Ctrl+F10呼出DataBindings面板(或者点击窗口下边的闪电标志,是快捷按钮)。然后点击面板中的Define Connection。弹出的 Connection管理窗口,点击New→Data source name(DNS): connection name,给你的连接起一个名字,比如guest;第二项连接池名字,这一块是前面忽略中已经设置好的,即在ODBC中新添加的数据库连接池。选中你需要的数据库连接;连接名和密码不用填,假如你已经设置了连接池登陆密码的话就必须添上。 如图1。
(图1)一切填好了后,按左边的Text键尝试一下连接。如果弹出“Connection was made successfully的话,那么你的设置就成功了,如果不成,请检查ODBC里是否建立有此连接池。点击OK→Done,这一步完成。下面就开始制作页面部分了。
||||||第三步:在页面插入一个表格,行数、列数看自己需要。我讲的需要一个2*2的表格。并设置一些样式(文字左对齐,背景颜色为……等,在下边的内容中将设置这个表格部分为重复内容,即每读取一条留言记录将作为一个留言表格出现,而且每个表格都使用的个这一个表格样式,很方便吧?需要按钮图片的,也要先放上去,比如留言者主页按钮。看一下插入读取标记前的样子:如图2
(图2)
第四步:下面就开始最重要的地方了:插入读取记录。先看一下留言本的样式,如图3。
(图3)
接下来:按Ctrl+F9调出Server Behavious面板,点击“+”,然后选中 Recordset(query):name里面为你的读区起一个名字;connection中选中我们刚刚在第二步中导入的数据库连接池名字;culomns选all或者选择selected中的选择这份页面需要项的表头(id,subject,name,oicq, email……)。这些都在填写留言时候已经向数据库输入了;所以现在做的就是把他们从数据库中读取出来。可以看一下面板此时的样子,如图3
||||||第五步:在表格左上边的栏里添上“标题:”相应的,所以右上栏就需要放标题了。
方法是:把鼠标焦点落到表格里,然后在Data bindings中选中subject(我在数据库中设置以它来作为标题的名称),在面板下边快捷栏上有看到Insert按钮吧??点击一下!
看到了吧,在表格栏里自动添上了“{Recordset1.subject}”,设置读取数据库中的标题就完成了。
下面做主页连接,因为从这导出数据库后显示在页面上的只是文本,所以如果想要使用超链接就需要这样:使用图片做链接(使用文字连接大同小异)。先看看页面的图,在右下表格栏选中想要连接到留言者主页的小图标,然后随便在图片的属性面板中link项里添上几个字母,激活图片的连接。现在你可以看到,在整个工作区的下边标签栏多了“<a>”,点中,这时察看一下Data bindings面板中的Bind(Insert)按钮前面的栏里的文字是不是由img.src变成了a.href?这时候,在Data bindings栏里面选中homepage(我在数据库中设置以它来作为留言者主页连接地址的名称),按下Bind,好了,主页地址按钮制作完成了。
下面就是显示留言者在留言时选中的头像。点击事先在表格左下栏放好的头像,然后看看Data bindings面板下的Bind(Insert)按钮前框里是不是显示img.src?此时在Data bindings面板里选中face(我在数据库中设置以它来作为留言者留言选择的头像),按下Bind,头像变成了灰色了是吧?ok了,头像的读取标记完成。
如果预览时候头像不显示,则是头像标记中相对路径的不对,解决办法是在插入头像标记后在图片的属性面板地址栏前面补足所差的路径名。接下来是在头像后面插入回车符<br>,用插入读取标题一样的方法bind用户名(name),还有其他的如email(在图片属性的link里连接字符串最前面添上mailto:),OICQ等数据,bind的方法是差不多的,可以自己慢慢推敲。
另外,教你个小技巧,把显示OICQ的图片连接到腾训的主页查询,这样就可以点击察看留言者的OICQ资料。点击显示OICQ的图片,图片属性里的link栏应该是
“<%=(Recordset1.Fields.Item("oicq").Value)%>”
你把它改成
“http://search.tencent.com/cgi-bin/friend/user_show_info?ln=<%=(Recordset1.Fields.Item("oicq").Value)%>”
就可以了。好了,到此为止读取数据库部分完成了。看看完成的编辑页面是什么样的:如图4
(图4)
保存一下吧。
||||||第六步:现在的预览制作结果只是读取了数据库的第一项。所以这一步就需要设置重复部分,就是每页显示几条留言、每个留言都按照这张表格首尾相连地重复地排在一块,这样看着就象一个留言本了! 选中整个表格(按自己需要,可以选择需要重复的地方)按Ctrl+F9调出Server Behaviors,点击“+”按钮,选中 Repeat Region,弹出的窗口里选中刚刚制作的Recordset1,下面是显示记录,可以选自定义“10、20……”,自己添上每页显示留言条数,或者显示全部的流言。按下OK。
第七步:也是最后一步,也很重要!就是把你现在所编辑的index.html改名为 index.asp!不然,浏览时候绝对会出错。预览一下吧,浏览器输入地址,看看,因为我的数据库里有三条记录,所以显示三条留言。(如图5)
(图5)好啦,现在一切完成!就目前所学到的,你已足够做出个人主页的站长日记本那种形式了。有问题欢迎来信(Email:caience.love@china.com)共同探讨。