📄 bbslist.asp
字号:
<%option explicit%>
<%
if session("user_type")<>"T" then
response.redirect "../../../index.asp"
end if
%>
<!--#INCLUDE FILE="../../../system/odbc_connection.asp"-->
<!--#INCLUDE FILE="function.asp"-->
<html>
<head>
<title>bbs论坛</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="general.css" rel="stylesheet" type="text/css">
</head>
<body>
<%
'首先获取论坛栏目
Dim forumid
if Request.QueryString("forumid")<>"" Then
'表示在左边选择了forum_id
forumid=Cint(Request.QueryString("forumid"))
Session("forumid")=forumid
Else
forumid=Session("forumid")
End If
'下面的page_no变量用来确定显示第几页数据。
Dim page_no
If Session("page_no")="" Or Request.QueryString("keyword")<>""Then
'显示最后一页,这里调用一个函数返回总页数
page_no=getPageTotal(forumid)
Session("page_no")=page_no
Elseif Request.QueryString("page_no")<>"" Then
page_no=Cint(Request.QueryString("page_no"))
Session("page_no")=page_no
Elseif varType(Request.Form("keyword"))=8 Then
page_no=1
Session("page_no")=page_no
Elseif Request.QueryString("forumid")<>"" Then
page_no=getPageTotal(forumid)
Session("page_no")=page_no
Else
page_no=Session("page_no")
If Session("page_no")=0 Then
page_no=1
Session("page_no")=page_no
End If
End If
'keyword和field变量用来查找记录
Dim keyword,field
If Trim(Request.Form("keyword"))<>"" Then
'这种情况表示客户提交了查询关键字,令keyword为提交的值,保存到Session中。
keyword=Request.Form("keyword")
field=Request.Form("field")
Session("keyword")=keyword
Session("field")=field
Elseif Trim(Request.Form("keyword"))="" And varType(Request.Form("keyword"))=8 Then
'这种情况表示客户提交了一个空字符串,所以令keyword="",field为默认的name字段,并保存到Session中。
keyword=""
field="name"
Session("keyword")=keyword
Session("name")=field
Elseif Request.QueryString("forumid")<>"" Then
'这种情况表示客户选择了新栏目
keyword=""
field="name"
Session("keyword")=keyword
Session("name")=field
Else
'其它情况下从Session中读取
keyword=Session("keyword")
field=Session("field")
End If
%>
<h4 align="center"><%=GetForumName(forumid)%></h4>
<table border="1" width="708" bordercolorlight="#80BFFF" cellspacing="0" cellpadding="0" bordercolordark="#80BFFF" align="center">
<tr class="trtitle">
<td width="100%">
<a href="addform.asp?forumid=<%=forumid%>"><font color="#FFFFFF">【发布新贴】</font></a>
</td>
</tr>
</table>
<table border="1" width="700" height="400" bordercolorlight="#80BFFF" cellspacing="0" cellpadding="2" bordercolordark="#80BFFF" bgcolor="#FFFFFF" align="center">
<tr>
<td width="100%" valign="top" align="center">
<form action="" method="post">
<p>查询关键词:
<input type="text" name="keyword" size="15" maxlength="20" class="inputbox" value="<%=keyword%>">
所属字段:
<Select name="field" class="inputbox">
<option value="title" <% If field="title" Then Response.Write "Selected"%>>主题</a>
<option value="body" <% If field="body" Then Response.Write "Selected"%>>内容</a>
<option value="user_id" <% If field="user_id" Then Response.Write "Selected"%>>作者</a>
</Select>
<input type="submit" value="开始查询" name="querysumbit" class="inputbutton">
</form>
<table border="1" cellpadding="2" bgcolor="#E1F3F4" cellspacing="0" style="border-collapse: collapse" bordercolor="#80BFFF" width="700" id="AutoNumber1" >
<tr bgcolor="#C5EDE7" height="23" align="center">
<td width="10%">编号</td>
<td width="60%">主题</td>
<td width="10%">点击</td>
<td width="10%">作者</td>
<td width="10%">操作</td>
</tr>
<%
'下面分页显示有关内容
dim rs,strSql
'下面根据keyword来判断准备显示的内容
If keyword="" Then
strSql="Select * From bbs Where forumid=" & forumid & " Order By father"
Else
'这里的keyword其实是由空格隔开的多个关键字组成的,现在可以将其拆分成一个数组
Dim arrKeyword,numKeyword,I,condition
arrKeyword=Split(keyword," ") 'split函数会把keyword拆分成一个数组
numKeyword=Ubound(arrkeyword) 'numKeyword返回数组的最大下标,因为从0开始,所以关键字个数为numKeyword+1
'下面开始组织这个条件,先把第1个关键字写好
condition=field & " like '%" & arrKeyword(0) & "%'"
'下面再继续添加第2个、第3个……关键字。当然,如果只有一个关键字,就不执行下面的循环了
For I=1 To numKeyword
condition=condition & " And " & field & " like '%" & arrKeyword(I) & "%'"
Next
'下面组成完整的Select语句
strSql="Select * From bbs Where forumid=" & forumid & " And " & condition & " Order By father"
End If
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open strSql,db,1 '因为要分页显示,所以用键盘指针
'下面查询记录,如果非空就显示记录
If Not rs.Bof And Not rs.Eof Then
'以下主要为了分页显示
rs.PageSize=15 '设置每页显示15条记录
dim page_total
page_total=rs.PageCount 'page_total会返回总页数,将在下面输出页码时用到
rs.AbsolutePage=page_no '设置当前显示第几页,这里用到了传过来的page_no。
'下面一段利用表格显示当前页的所有记录
I=rs.PageSize 'I 用来控制显示当前页记录,注意这里和rs.PageSize要一致。
Do While Not rs.Eof And I>0 '循环直到当前页结束或记录集结尾
I=I-1 '每显示一条,I减1,当变成0时,表示本页结束
%>
<tr bgcolor="#E1F3F4" height="23" valign="middle">
<td align="center"><%=rs("id")%></td>
<td align="left">
<%=viewnull(trim(rs("father")))%><a href="particular.asp?id=<%=rs("id")%>" title="发表时间:<%=rs("submit_date")%>"><%=rs("title")%></a>
</td>
<td align="center"><%=rs("hits")%></td>
<td align="center"><a href="mailto:<%=rs("email")%>"><%=rs("user_id")%></a></td>
<td align="center"><a href="delete.asp?id=<%=rs("id")%>">删除</a></td>
</tr>
<%
rS.MoveNext
Loop
End If
'关闭对象
db.Close
Set db=Nothing
%>
</table>
<%
'--------------------------------------------------------------------------------------
'这一段输出页数信息,从1到总页数Page_total循环。Page_total由上面分页显示决定。
Response.Write "<p align='center'><b><font color='#CC0066'>" & page_no & "/" & page_total & "</b></font>页 "
'列出同往前十页的链接,为当前最小值减1
Dim numTemp
numTemp=minPage(page_no,page_total)-1
If numTemp>=1 Then
Response.Write "<a href='bbslist.asp?page_no=" & numTemp & "'>...</a> "
End If
'列出当前10页的链接,这里调用函数
For I=minPage(page_no,page_total) To maxPage(page_no,page_total)
If I=page_no Then
Response.Write "<b><font color='#CC0066'>" & I & "</font></b> "
Else
Response.Write "<a href='bbslist.asp?page_no=" & I & "'>" & I & "</a> "
End If
Next
'列出前往后十页的链接,为当前最大值加1
numTemp=maxPage(page_no,page_total)+1
If numTemp<page_total Then
Response.Write "<a href='bbslist.asp?page_no=" & numTemp & "'>...</a> "
End If
%>
</td>
</tr>
</table>
<table border="1" width="708" bordercolorlight="#80BFFF" cellspacing="0" cellpadding="0" bordercolordark="#80BFFF" align="center">
<tr class="trtitle">
<td width="100%">
<a href="addform.asp?forumid=<%=forumid%>"><font color="#FFFFFF">【发布新贴】</font></a>
</td>
</tr>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -