ASP+FSO 根据模板批量生成HTML?
ASP+FSO 根据模板批量生成HTML?添加一个型号根据这个型号生成HTML 我已经实现了!但是如何批量生成HTML呢? 数据库里有一些型号是从EXCEL导入了!
数据库 表:cla(产品分类表)
字段:ID(自动编号) cla_s(分类),typename(这类产品下的型号生产的HTML所存放的文件夹,默认都是STOCK)
表:Example(HTML的模板表)
字段:ID(自动编号) E_memo(HTML的模板)
表:data(存放所有的产品信息)
字段:ID(自动编号) cla(产品所属分类) namee(产品型号英文),name(产品型号中文),path(图片存放路径)。。。。
。。。。。。N_Fname(生成的HTNL的文件名,),cpath(生成的HTML文件存放的文件夹)
两个文件
第一个:plhtml.asp 页面里列出了开始ID (statID)结束ID(endID)和HTML的模板(name="Example" size="1")
第二个:aotuhtml.asp 批量生成HTML的文件(代码一会贴出来)
思路:从plhtml.asp 把 (statID)结束ID(endID)和HTML的模板的值传递到aotuhtml.asp页面。然后由aotuhtml.asp页面批量生
成HTML。根据开始ID和结束ID,从第一条开始(就是开始ID statID ),如果N_Fname为空(为空表示还没有生成HTML),就生成
HTML,然后判断下一条(还是判断N_Fname字段是否为空)。否则,就输出:所有产品都已生成HTML,不用在次生成。
aotuhtml.asp 代码如下:
<!--#include file="include/Conn.asp"-->
<!--#include file="include/char.asp"-->
<!--#include file="include/setup.asp"-->
<%
function makefilename(fname)
fname = time() & "-" & ztitles
fname = replace(fname,":","")
fname = replace(fname,"PM","")
fname = replace(fname,"AM","")
fname = replace(fname,"上午","")
fname = replace(fname,"下午","")
makefilename=fname & ".html"
end function
dim
zstatID,zendID,zcla,ztitles,ztitlee,picinfo,picarr,strpic,strwidth,strheight,zppz,zfzz,znfz,zslz,zbzz,zpicdemos,zjg,
zpx,zN_Fname
dim sql
dim rs
dim from
dim sql1
dim rs1
dim typename1
zstatID=trim(request.Form("statID"))
zendID=trim(request.Form("endID"))
sql="select * from data where id="&zstatID
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
zN_Fname=rs("N_Fname")
i=0
if rs.bof and rs.eof then
response.write("<script>alert('对不起,你输入的开始ID和结束ID不正确,请重新输
入!');location.href='javascript:history.back()';</script>")
else
if zN_Fname="" then
do while not rs.eof
i=i+1
zcla=rs("cla")
ztitles=rs("namee")
ztitlee=rs("names")
zppz=rs("ppz")
zfzz=rs("fzz")
znfz=rs("nfz")
zslz=rs("slz")
zbzz=rs("bzz")
zpicdemos=rs("picdemos")
zjg=rs("jg")
zpx=rs("px")
sql1="select * from cla where id="&zcla
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,conn,1,1
filepath=rs1("typename")
set rs = server.CreateObject("ADODB.RecordSet")
StrSql = "select E_Memo from Example where id="+request("Example")
set rs = conn.Execute (StrSql)
fname = makefilename(now())
pencat=rs("E_Memo")
pencat=replace(pencat,"H_Title",ztitles)
pencat=replace(pencat,"H_Ppz",zppz)
pencat=replace(pencat,"H_Fzz",zfzz)
pencat=replace(pencat,"H_Nfz",znfz)
pencat=replace(pencat,"H_Slz",zslz)
pencat=replace(pencat,"H_bzz",zbzz)
pencat=replace(pencat,"H_Memo",zpicdemos)
pencat=replace(pencat,"H_strpic",strpic)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fout = fso.CreateTextFile(server.mappath("..\"&filePath& "\" & fname))
fout.WriteLine pencat
fout.close
set rs=server.createobject("adodb.recordset")
sql="select * from data where id="&zstatID
rs.open sql,conn,1,3
rs("cpath")=filepath
rs("N_Fname")=fname
rs("date")=now()
rs.update
rs.movenext
loop
response.write("文件更新完毕!共 <font color=#ff0000>"&i&"</font> 个文件")
rs1.close
set rs1=nothing
rs.close
set rs=nothing
conn.close
set conn=nothing
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
end if
%>
各位大哥 大姐们 帮我看一下,我估计是我的循环那里写错了!帮忙指点一下 谢谢了!我已经搞了3个通宵了!还是不行!