⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bbslist.asp

📁 与asp相关的技术 如数据库和网页设计 很有用的哦
💻 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%>">&nbsp;&nbsp;
					所属字段:
					<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>页&nbsp;"
				'列出同往前十页的链接,为当前最小值减1
				Dim numTemp
				numTemp=minPage(page_no,page_total)-1
				If numTemp>=1 Then
					Response.Write "<a href='bbslist.asp?page_no=" & numTemp & "'>...</a>&nbsp"
				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>&nbsp;"
					Else
						Response.Write "<a href='bbslist.asp?page_no=" & I & "'>" & I & "</a>&nbsp"
					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>&nbsp"
				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 + -