农民程序员一周教会你asp第3讲

女士们,先生们,ladys and 乡亲们,大家好,我们第三讲在大家的鼓倒掌声中隆重开始啦,有人说asp已经过时了,我想只要我还活着,就不会过时啊,因为我还要用啊,我就只会用asp啊,哈哈。开个玩笑,虽然过时了,但是他还是很受那些入门程序员欢迎的,所以我们还要继续滴。

有人说,你这个教程不讲基础,不讲原理,就知道贴代码,我们怎么能看懂啊,我不是说了吗,我的教学方法就是应用型的,你会贴代码,你就会做网站,我给你的都是万能代码,万能啊,懂嘛!

好,言归正传,开始我们今天的讲座。今天首先我们来讲个原理。关于asp提交到数据库的操作模型。

我们一般写留言本的时候,都有一个书写界面,就是大家填写留言的界面,他可以是动态asp的,也可以是静态html的,都可以。但是呢,这个界面不可缺少的东西是<form>(表单)标签,他决定了你的这个表单要提交的内容和提交给谁。表单里面的东西一般是input或者select等等吧,这都是基本的html的玩意儿。我们来看一个最简单的form吧,写个留言。

新建一个文件。叫做add.htm,就htm吧,证明他可以是静态的。

写个表单内容:

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

填 写 人:<input type="text" name="addname"><BR>

留言标题:<input type="text" name="title"><BR>

留言内容:<TEXTAREA name="content" ROWS="5" COLS="30"></TEXTAREA><BR><BR>

<input type="submit" name="提交给数据库吧!">

</FORM>

复制代码

页面显示如下:

我们来看代码,代码中form标签中,method是post格式,昨天我们讲获取id的时候,是get格式,一般就用这两个格式。如果笼统地说,你点个标题,打开个页面,一般是get方式传递,如果你点个按钮,提交个信息,一般是form方式传递,我说的是多数,不嫌麻烦的话,他俩可以换用。因为是表单,我们就常规一些,post吧。Action就是行为指向,指向了addsave.asp。既然说到了addsave.asp这个文件,我们就是要提交给他,由他来接收提交过来的数据,并操作数据库,强势插入!爽歪歪!!!

好,我们来看操作addsave.asp代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>’这些东西都是昨天学得,今天不讲了

<!--#include file="inc.asp"-->

<%

Set rs = Server.CreateObject("ADODB.Recordset")

       sql = "SELECT * FROM lyb" 

       rs.OPEN sql,Conn,1,3

       rs.addnew’这句话是增加新纪录的核心数据。一定要有

       rs("addname")=Request.Form("addname")’就是把你通过form获取的addname赋值给rs(“addname”)字段,然后更新,具体可以看看昨天我提到的访问统计课外阅读。

       rs("addtime")= Now()’now()是asp的一个获取时间的函数,什么是函数,我们后面会讲

       rs("title")=Request.Form("title")

       rs("content")= Request.Form("content")

rs("clicknum")=0

'如果还有别的字段,可以继续往下写……

       rs.update’这个我们在昨天的计数器中提到过。

       rs.close

set rs=Nothing

response.write "ok! <a href='index.asp'>返回啊返回!</a>"

%>

复制代码

运行add.htm,然后提交留言,就会触发这个页面,并显示执行结果

 

好了,插入成功啦!返回看一下。

完成发布提交任务。

当然这些东西都是最基本的,不考虑字段类型啊,长度啊,判断啊等等各种安全性措施,如果需要进一步的学习,可以继续深入研究。

下面我们回过头来改造我们的发布区域。

复制add.htm,改名字为bianji.asp,然后打开。

回顾昨天学习的读取的内容,将昨天读取一条内容的代码贴过来。

如图所示:

其实,就是打开读取一条记录,但是不在普通页面显示,而是在表单中显示。

在input表单中,用value=显示,在textarea中,是在配对的标签中显示,如上图所示。

然后我们访问一下这个页面

Bianji.asp?id=8,就是刚才我们提交的那个页面。

看,是不是太神奇了,我们居然又还原回到了发布前的状态,只不过现在是在编辑状态下。

同样,编辑状态完成后,也要通过触发数据库,进行操作。触发数据库的代码,其实昨天我们在学习计数器的时候,已经讲过啦。简单一点儿就是rs.update嘛!

但是不能忽视一点的就是,程序在编辑状态下,要提交,是要有一个主键的,什么是主键呢,就是我们建立数据表的时候的那个id,只有通过form传递一个id给触发代码,他才会知道是修改哪一条记录,否则,否则全改了,有多少改多少,你哭都没地方哭啊。就像那个短信群发的那个笑话段子啊,很经典的。

好,看看修改提交和发布提交的form代码差别在哪里。

对头,就是多出了一行,用来传递这个留言的唯一id主键

然后看看触发数据库的那段代码差别在哪里。我们复制一个addsave.asp,然后看我怎么改。

对头,就是这两行:

SELECT * FROM lyb where id="&formid

SELECT * FROM lyb

看明白了吧?操作一下,我们试试看哦

恭喜我吧,成功啦!

好了,编辑留言也学会了,太简单啦,难道一个留言本就这么简单的几行代码就完成了吗?

是的理论模型就完成了,很简单,也很丑陋,但是这确是实现所有功能的最基本的框架,就像一座大楼,刚刚做好了框架,还没有装修,但是大厦已经挺立起来了!

好的,今天的讲座就讲这些吧,最后顺便把数据库的最后一项操作【删除】给大家讲讲,删除没有技术含量,就是个delete代码如下|:

conn.execute("delete from lyb where id="&getid&"")

复制代码

好,我们建立一个删除文件, shanchu.asp,内容如下:

需要删除的时候,可以用shanchu.asp?id=xx进行删除。

拖堂了,拖堂的老师是学生不喜欢的老师。各位,晚安!

第三天文件:

点击下载

相关文章

数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98...
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'n...
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采...
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(j...
<% ’判断文件名是否合法 Function isFilename(aFilename...