webForumDet fria alternativet

Paging

1 svar · 195 visningar · startad av hallmert

hallmertMedlem sedan dec. 2004182 inlägg
#1

Hej, sitter här och meckar ett forum med pagingsscript för svaren.
Längst ner så ska navigeringen finnas om det är mer än 10 inlägg. Allt fungerar, bortsett från att pagingen syns ÄVEN fast det är mintre än 10 inlägg, det står alltså "Det finns fler inlägg här:", och ingenting efter, jag vill att den ska stå där ENBART om det finns fler sidor än en enda. Snälla hjälp! /Patrik

<%
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/fanclub.mdb")

Const perSida = 10
Sidan = Request.QueryString("sida")
If Sidan = "" then 
sida = 1 
Else 
sida = Sidan 

End If 

SQL = "SELECT * FROM forum_inlagg where original = 'nej' and inlaggid = '"&Request.Querystring("ID")&"'"

With rs
.CursorLocation = 3
.CacheSize = perSida 
End With

rs.Open SQL, MinCon

if rs.eof then
response.write "Ingen har besvarat inlägget ännu." 
else
With rs
.PageSize = perSida 
.AbsolutePage = sida
End With

Sidor =  rs.PageCount

Count = 0 
Do While Not rs.EOF And Count < rs.PageSize 
%>
<table width="405" cellpadding="0" cellspacing="1" bgcolor="#554B43" align="center">
<tr>
<td width="405" bgcolor="#766A61">

	<table width="405" cellpadding="2" cellspacing="0" align="center">
	<tr>
	<td width="405" align="left" bgcolor="#B9AA9D"><div class="rubrik">SV: <%=server.HTMLEncode(rs("rubrik"))%></div></td>
	</tr>
	<tr>
	<td width="405" bgcolor="#B9AA9D">
	Skrevs <%= replace(formatdatetime(rs("datum"),vblongdate),"den ","") & " " & formatdatetime(rs("datum"),vbshorttime) %> av <%=server.HTMLEncode(rs("username"))%>.
	</td>
	</tr>
	<tr>
	<td width="405" valign="top" bgcolor="#766A61">
	<%=replace(rs("inlagg"),vbCrlf,"<br>")%>
	</td>
	<tr>
	<td width="405" valign="top" align="right" align="right">
	<% IF Session("id") = 133 then %>
	<a href="forum_tabort_svar.asp?delID=<%=rs("ID") %>&forum=<%=rs("forum")%>&ID=<%=Request.Querystring("ID")%>"><img src="grafik/papperskorg.gif" border="0"></a>
	<% End IF %>
	</tr>
	</tr>
	</table>

</td>
</tr>
</table>
<table height="4" cellpadding="0" cellspacing="0">
<tr>
<td height="4"></td>
</tr>
</table>

<%
	Count = Count + 1
	rs.MoveNext
	Loop
end if

rs.Close
MinCon.Close
%>

<%If Sidor = 1 Then%>
<%Else%>
<%End If%>
<div align="center">
<%If Sidor = "0" Then%><% else %><b><u>Det finns fler inlägg här:</b></u>&nbsp;
<%For Sid = 1 To Sidor%>
<%If (Int(Sid)) = (Int(sida)) Then%><%=Sid%><%Else%> <a href="default.asp?visaSida=forum_las&ID=<%=Request.Querystring("id")%>&sida=<%=Sid%>"><%=Sid%></a> <%End If%>
<%Next%> 
<%End If%></div>
@ndersMedlem sedan juni 200032 969 inlägg
#2

Du har väldigt många contextswitchar och en del konstig kod här:

<%If Sidor = 1 Then%>
<%Else%>
<%End If%>
<div align="center">
<%If Sidor = "0" Then%><% else %><b><u>Det finns fler inlägg här:</b></u> 
<%For Sid = 1 To Sidor%>
<%If (Int(Sid)) = (Int(sida)) Then%><%=Sid%><%Else%> <a href="default.asp?visaSida=forum_las&ID=<%=Request.Querystring("id")%>&sida=<%=Sid%>"><%=Sid%></a> <%End If%>
<%Next%> 
<%End If%></div>

Den första if-satsen till exempel, vad ska den göra? Både if- och else-blocken är ju tomma?

Jag skulle provat något sånt här:

<%
If Sidor > 1 Then
   Response.write "<div align=""center"">"
   Response.write "<b><u>Det finns fler inlägg här:</b></u>"
   for Sid = 1 To Sidor
       If (Int(Sid)) = (Int(sida)) Then Response.write Sid Else Response.write "<a href=""default.asp?visaSida=forum_las&ID=" & Request.Querystring("id") & "&sida=" & Sid & """>" & Sid & "</a>"
   Next
   Response.write "</div>" 
End If
%>

mvh

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)