VFP使用HTML模板文件
纯静态内容显示
想要在在网页中显示
Today is the third day of study VFP BS!
前端模板文件内容如下,有点类似于ASP代码风格:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>VFP_freeBS3</title>
</head>
<body>
<%=U("Today is the third day of study VFP BS!")%>
</body>
</html>
如果直接打开这个模板文件,代码会原样输出,并未成功执行,网页上显示的内容为
<%=U("Today is the third day of study VFP BS!")%>
这并不是我们想显示的内容,因为此模板文件必须经过VFP后端处理才能正确显示。
后端代码为:
DEFINE CLASS ctl_html as Session
PROCEDURE html
cHtml=GetWwwRootPath("template")+"freebs3.html"
_currentcode="UTF-8"
RETURN FWS_MergeFile(cHtml)
ENDPROC
ENDDEFINE
此时再通过浏览器访问
http://192.168.3.159:801/ctl_html.fsp?proc=html
此时网页上就会显示:
Today is the third day of study VFP BS!
如下图
至此,我们已成功输出了静态文本内容,那么有没有办法像ASP一样,输出动态内容呢?当然是可以的。我们只需要对模板文件和VFP后端过程进行一下加工即可。
再引入变量内容显示
前端代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>VFP_freeBS3</title>
</head>
<body>
<p><%=U("Today is the third day of study VFP BS!")%></p>
<p><%=U(lcMess)%></p><!-- 此处使用变量,该变量应当与VFP后端保持一致,否则无法执行 -->
</body>
</html>
后端代码:
DEFINE CLASS ctl_html as Session
PROCEDURE html
PRIVATE lcMess
lcMess="能够写到这一步了,很不错哟,继续努力吧!"
lcMess=lcMess+"<br>"+DTOC(DATETIME())
cHtml=GetWwwRootPath("template")+"freebs3.html"
_currentcode="UTF-8"
RETURN FWS_MergeFile(cHtml)
ENDPROC
ENDDEFINE
通过浏览器访问的效果如下:
Today is the third day of study VFP BS!
能够写到这一步了,很不错哟,继续努力吧!
08/03/21
读入数据库记录内容显示
前端代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>VFP_freeBS3</title>
<style type="text/css">
table {
/*margin:0 auto;*/
border-collapse: collapse;
border-spacing: 0;
}
th {
background-color: #4CAF50;
color: white;
height:30px;
}
tr:hover {background-color: #f5f5f5;}
td{
border: 1px solid #DDD;
padding: 5px 8px;
word-break: break-all;
}
</style>
</head>
<body>
<TABLE>
<TR>
<TH>报名号</TH>
<TH>姓名</TH>
<TH>性别</TH>
</TR>
<%scan%>
<TR>
<TD><%=U(luqu.bmh)%></TD>
<TD><%=U(luqu.xm)%></TD>
<TD><%=U(luqu.xb)%></TD>
</TR>
<%endscan%>
</TABLE>
</body>
</html>
后端代码
DEFINE CLASS ctl_html as Session
PROCEDURE html
PRIVATE cName,cBmh,cXb
oDBS=NEWOBJECT("MSSQLHelper","MSSQLHelper.prg")
TEXT TO lcSQLCmd NOSHOW TEXTMERGE
SELECT TOP 20 signup_bmh as bmh,signup_xm as xm,signup_xb as xb FROM student_signup
ENDTEXT
?lcSQLCmd
ofrmMain.log(lcSQLCmd)
nHandle=oDBS.SQLQuery(lcSQLCmd,"luqu")
IF nHandle<0
ERROR oDBS.errmsg
ENDIF
cHtml=GetWwwRootPath("template")+"freebs3.html"
_currentcode="UTF-8"
RETURN FWS_MergeFile(cHtml)
ENDPROC
ENDDEFINE
需要说明的是,在后端读取数据前需要先进行账套设置
运行效果
本课关键点总结:
输出内容的闭合标签:<%=U("此处为需要输出的内容")%>
获取模板文件的函数:GetWwwRootPath("模板文件所在目录")+"模板文件名称"
合并输出HTML文件内容:FWS_MergeFile(cHtml)
声明变量,以便前端获取:PRIVATE
定义数据库连接: oDBS=NEWOBJECT("MSSQLHelper","MSSQLHelper.prg"),oDBS为自定义变量
第三课视频学习教程
由于服务器原因,在线视频暂时下线了。
最新回复