<!--#include file="Conn.Asp"-->
<%
'出自:
'作者:康董
'如需转载请务必保留以上信息
'定义一个变量,来保存xml数据
xml="<?xml version='1.0' encoding='gb2312'?><body>"
action=Request.QueryString("action") '使用get方式接受一个action来判断客户端想要执行什么操作
Select case action
case "read" '如果为read则执行读取数据的操作
Call Read
case "add" '如果为add则执行添加数据的操作
Call Add_Data
case else
xml = xml&"<msg>请求参数错误,请不要试图非法操作!</msg>"
End Select
xml=xml&"</body>"
Response.Clear
Response.ContentType="text/xml"
Response.CharSet="gb2312"
Response.write xml '注意这句啊.上面的那些判断执行过程.其目的就是获取一个新的xml变量内容.然后在这里输出这个xml
Response.End
Sub Read '定义一个读取数据的过程
Call OpenConn '打开数据库链接
Sql = "Select * From web_table" '打开数据库中名字为web_table的表
Set Rs = Conn.Execute(Sql) '执行Sql语句,并将sql的索引赋值给rs变量
xml = xml&"<list>" '没开始读取之前先建立一个list标签.将所有数据都包含在该标签下
While Not Rs.Eof '如果表中有数据.则一直循环读取
xml = xml&"<li>"&Rs("web")&"</li>"
Rs.MoveNext '执行下一条数据的读取
Wend '如果数据库中没有了数据.则结束循环
xml = xml&"</list>" '数据读完闭合list标签
Close_Conn '关闭数据库链接
End Sub
Sub Add_Data '添加数据过程
On Error Resume Next '如果发生错误继续执行程序
OpenConn '打开数据库链接
str = Trim(Request.Form("str")) '接收客户端传过来的str内容
If str = "" Then
xml = xml&"<msg>3</msg>" '如果提交的内容为空.返回3
Exit Sub '退出过程
End If
Sql = "Insert Into web_table (web) values ('"&str&"')"
Conn.Execute(Sql) '执行添加数据
If Err.Number = 0 Then '判断是否有错误发生,
xml = xml&"<msg>0</msg>" '如果没有错误发生,则证明数据已经成功.返回0
Exit Sub
Else
xml = xml&"<msg>1</msg>" '如果发生错误.则证明有错误发生.数据很可能添加失败
Exit Sub
End If
End Sub
%>
上面是你使用ajax请求的服务端网页:Add_Data.Asp的源码.现在使用Asp的应该不多了吧?但我依然痴情于她.无论你用的服务端技术是Php,.Net,或者Jsp等.经过我的解释你应该很容易的会模拟出这个源码的功能.
1:include file="Conn.asp"在Asp里的作用是引入一个网页.Conn.asp是我的数据库链接文件.为安全起见.我就不暴露数据库名称了.你自己建个库.随便起个名进行测试吧.
2:定义一个名字为xml变量.将xml格式的数据保存在这个变量中.使用Response.Write输出xml变量中的内容.
3:接收你在前端url传过来的action参数.并判断action的值.Select case不用解释了吧.多支判断.如果action的值是read,则执行Read过程.如果是add则执行Add_Data过程.如果两者都不是则证明不是通过正常渠道进行请求的. 向xml变量中再增加一个msg标签.输出以后会给出显示的内容
4:Response.Clear清除缓存.
5:Response.ContentType="text/xml"定义输出的文本格式.xml类型
6:Response.CharSet="gb2312"输出编码,中文编码.
7:Response.write xml向客户端输出xml变量中的数据.该变量保存的是xml格式的数据.
8:Response.End停止一切输出.
9:定义一个 Read 过程.用来读取数据库test_table表中的web字段内的数据.打开数据库,sql语句.执行sql.开始读取!这些知识我就不讲了.如果你还不会.我想你应该去学习一下操作数据库的知识!我重点讲一下该Read过程的 意义.在读取数据之前先为xml变量中增加了一个list的标签.然后将所有的数据都读取到list标签内,每条数据又被包含在了一个li标签内.数取读取完毕.闭合list标签.我想说的是,这个Read过程并没有向客户端输出任何内容. 他的工作就是将数据库中的内容以xml的格式读取到那个xml变量中.当客户端action=add的时候.执行Read过程.Read过程给出一个新的xml变量.Response.Write xml输出这个变量到客户端,客户端接受到这个xml,我们在前端使用responseXML接收这个xml.然后显示!明白吗?不明白加我Q:30458885
10:我们再来讲Add_Data这个过程.Add_Data的意义和Read是相同的.都是在执行一系列操作以后向xml变量中赋值.Add_Data的作用是接受客户端发送过来的数据.并将数据写到数据库内.你仔细看下Add_Data中的程序逻辑.首先他会判断你提交的数据是否为空.如果为空向xml变量中增加一个msg标签.内容是3.然后退出Add_Data. 如果数据不为空.则向数据库写入该数据.然后判断是否有错误发生.如果没有错误也向xml变量中增加一个msg标签,内容是0.代表在写入数据时一切正常.数据被成功添加.相反Err.Number不等于0.则代表在写入数据时发生了错误.数据没有被成功添加.这时也会向xml变量中添加一个msg标签.内容为1.这三种情况无论那种发生 都会在添加msg标签以后立即退出Add_Data.所以只有一个msg标签会被写入.那么我们马上回来客户端Add_Post中函数正是接收了这个msg标签以后.根据msg的内容来判断服务端究竟发生了什么事!如果msg的内容为0,证明服务端一切正常,没有错误发生.数据已被添加到数据库.我们直接使用Dom将str中的内容写入到了表格内.并没有 执行读取数据的Post函数.如果msg内容为3,证明你输入了空的内容.如果msg内容为1,证明服务端有错误发生.数据写入失败!
怎么样你学会使用ajax技术向数据库添加数据了吗?不要说No!拜托我讲的很辛苦......
下一篇我们讲:ajax修改数据即时显示篇
您可能感兴趣的文章: