flash+asp+xml留言本教程

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

演示地址

源文件下载

在下载到本地或者上传到空间上之前,请到后台修改参数设置里面的地址,然后进行测试!

如果你的机器或者服务器不支持FSO,请手动修改URL.XML文件里面的地址!

ASP主要部分:

page.asp (传给flash第n页的n条纪录)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<% show_page = 9 '每页显示的纪录

db = "data/data.mdb" '数据库存放目录

'-连接数据库

set conn=server.createobject("adodb.connection")

conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath(db)

'-----------------------------------------------------------------------

'用途:将UTF-8编码汉字转为GB2312码,兼容英文和数字!

function encodestr(str)

dim i

str=trim(str)

str=replace(str,"'","""")

str=replace(str,vbCrLf&vbCrlf,"</p><p>")

encodestr=replace(str,vbCrLf,"<br>")

end function

'用途:将UTF-8编码汉字转为GB2312码,兼容英文和数字!

Function uni(Chinese)

For j = 1 to Len (Chinese)

a=Mid(Chinese, j, 1)

uni= uni & "&#x" & Hex(Ascw(a)) & ";"

next

End Function %>

<%

'如果FLASH传过来变量

if request("action")="showpage" then

'打开纪录

sql="select * from gbook order by id desc"

set rs=server.createobject("adodb.recordset")

rs.open sql,conn,1,1

'---------------分页 开始

if not rs.eof then

'如果有记录

rs.PageSize = show_page

total=rs.RecordCount '共多少条记录

maxpage=rs.PageCount '共分几页

page=request("page") '当前页

if Not IsNumeric(page) or page="" then

page=1

else

page=cint(page)

end if

if page<1 then

page=1

elseif page>maxpage then

page=maxpage

end if

rs.AbsolutePage=Page

else

'如果没记录

total=0

maxpage=0

page=0

out=""

wujilu="1"

'把wujilu变量传给flash,让flash知道没有记录然后做出相应的动作

'输出xml文件格式

Response.Write "<?xml version='1.0' encoding='utf-8'?>"

Response.Write "<gbook total='"&total&"' maxpage='"&maxpage&"' page='"&page&"' wujilu='"&wujilu&"'></gbook>"

Session.CodePage="936"

end if

'---------------分页 结束

'---------------打开 PageSize 条记录 开始

if not rs.eof then

'如果有记录

for i=1 to rs.PageSize

page_id=rs("id")

page_name=uni(rs("name"))

if len(rs("title")) > 19 then '截取字符

page_title=left(rs("title"),19)&".."'截取字符

else

page_title=rs("title")

end if

page_title=uni(page_title)

page_date=rs("date")

out=out&"<info page_id='"&page_id&"' page_name='"&page_name&"' page_title='"&page_title&"' page_date='"&page_date&"' />"

rs.movenext

if rs.EOF then

i=i+1

Exit For

end if

next

end if

'---------------打开 PageSize 条记录 结束

rs.close

set rs=nothing

conn.close

set conn=nothing'释放资源

'输出分页信息,xml格式

Response.Write "<?xml version='1.0' encoding='utf-8'?>"

Response.Write "<gbook total='"&total&"' maxpage='"&maxpage&"' page='"&page&"'>"&out&"</gbook>"

Session.CodePage="936"

end if

%>

show.asp(传给flash单条纪录的信息)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<%

show_page = 9 '每页显示的纪录

db = "data/data.mdb" '数据库存放目录

set conn=server.createobject("adodb.connection")

conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath(db)

'-----------------------------------------------------------------------

'用途:将UTF-8编码汉字转为GB2312码,兼容英文和数字!

function encodestr(str)

dim i

str=trim(str)

str=replace(str,"'","""")

str=replace(str,vbCrLf&vbCrlf,"</p><p>")

encodestr=replace(str,vbCrLf,"<br>")

end function

Function uni(Chinese)

For j = 1 to Len (Chinese)

a=Mid(Chinese, j, 1)

uni= uni & "&#x" & Hex(Ascw(a)) & ";"

next

End Function

'------------------------------------------------------------

%>

<%

if request("action")="show" then

'打开纪录为flash传过来的第show_id条信息

sql="select * from gbook where id="&request("show_id")

set rs=server.createobject("adodb.recordset")

rs.open sql,conn,1,1

'uni参数,就是把gb编码转换成utf-8编码,要不然flash会乱码

show_name=uni(rs("name"))

show_id=uni(rs("id"))

show_title=uni(rs("title"))

if rs("email")<>"" then

show_email=uni(rs("email"))

end if

if rs("qq")<>"" then

show_qq=uni(rs("qq"))

end if

show_content=uni(rs("content"))

show_date=uni(rs("date"))

out=out&"<info show_name='"&show_name&"' show_id='"&show_id&"' show_title='"&show_title&"' show_email='"&show_email&"' show_qq='"&show_qq&"' show_content='"&show_content&"' show_date='"&show_date&"' />"

rs.close

set rs=nothing

conn.close

set conn=nothing

'输出xml格式

Response.Write "<?xml version='1.0' encoding='utf-8'?>"

Response.Write "<gbook>"&out&"</gbook>"

end if

%>

add.asp(flash传给asp增加纪录)

<%

show_page = 9 '每页显示的纪录

db = "data/data.mdb" '数据库存放目录

set conn=server.createobject("adodb.connection")

conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath(db)

'-----------------------------------------------------------------------

'用途:将UTF-8编码汉字转为GB2312码,兼容英文和数字!

function encodestr(str)

dim i

str=trim(str)

str=replace(str,"'","""")

str=replace(str,vbCrLf&vbCrlf,"</p><p>")

encodestr=replace(str,vbCrLf,"<br>")

end function

Function uni(Chinese)

For j = 1 to Len (Chinese)

a=Mid(Chinese, j, 1)

uni= uni & "&#x" & Hex(Ascw(a)) & ";"

next

End Function

'------------------------------------------------------------

%>

<%

Session.CodePage="65001"

if encodestr(request("action"))="add" then'如果flash传过来的变量是add

if encodestr(request("w_name"))="" then'如果w_name等于空

cuowu="n"

response.write"&addok="+cuowu '

elseif encodestr(request("w_title"))="" then '如果标题空

cuowu="t"

response.write"&addok="+cuowu

elseif encodestr(request("w_content"))="" then'如果留言内容空

cuowu="c"

response.write"&addok="+cuowu

end if

if cuowu="" then '如果姓名,标题,留言内容不为空

sql="select * from gbook "

set rs=server.createobject("adodb.recordset")

rs.open sql,conn,3,3

rs.addnew '增加纪录

rs("name")=encodestr(request("w_name"))

rs("title")=encodestr(request("w_title"))

if encodestr(request("w_email"))="" then

rs("email")=null

else

rs("email")=encodestr(request("w_email"))

end if

if encodestr(request("w_qq"))="" then

rs("qq")=null

else

rs("qq")=encodestr(request("w_qq"))

end if

rs("content")=encodestr(request("w_content"))

rs("date")=date()

rs.update

rs.close

set rs=nothing

conn.close

set conn=nothing

response.write"&addok=ok" '返回给flash 留言成功

end if

end if

Session.CodePage="936"

%>

FLASH部分:

留言列表

function showPage()//定义函数

{

function titlemenu()

{

gbtitle.attachMovie("title_mc", "title_mc" + i, i);//循环增加MC

gbtitle["title_mc" + i]._y = 30 * i;//MC的位置

gbtitle["title_mc" + i].page_id = gb[i].attributes.page_id;//title_mc里面的动态文本显示asp传来的变量

page_id=gb[i].attributes.page_id;

gbtitle["title_mc" + i].page_title = gb[i].attributes.page_title;

gbtitle["title_mc" + i].page_date = gb[i].attributes.page_date;

gbtitle["title_mc" + i].page_name = gb[i].attributes.page_name;

i++;

if (i >= nTotal)//如果纪录大于每页显示的纪录

{

clearInterval(nInterval);

} // end if

} // End function

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航