Ciao a tutti ho uno script molto semplice fatto in asp per la visualizzazione di news e articoli, composto da una pagina per la visualizzazione dell'articolo e una pagina di elenco articoli con paginazione.
Vorrei mettere tutte e due le pagine in una e visualizzare quindi l'articolo per intero da una parte e l'elenco delle news dall'altra, solo che vorrei conservare la funzione di paginazione.
Vi chiedo un aiutino, se la cosa nn è troppo complessa.
Un esempio di come dovrebbe funzionare è questo qui
Premetto che la funzione di paginazione è già presente nella pagina che elenca le news e che estrae le news che contengono solo una specifica parola nella tabella specificata(funzione che vorrei mantenere) link: qui l'articolo intero viene visualizzato in una seconda pagina.
Il problema è che non so come specificare il key dell'articolo quando l'utente sfoglia l'elenco degli articoli, spero si sia capito
Il codice della pag che elenca le news è:
codice:
<% 'no security checking %> <%
'****************************************************************************************
'** Copyright Notice
'**
'** Script originale - www.t-dreams.com by Mohamad Al-Karbi
'** Modificato da Asunis Daniele - www.a.com
'**
'** All copyright notices must remain intacked in the scripts
'****************************************************************************************
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
%>
<%
displayRecs = 4
recRange = 4
%> <%
' Get table name
tablename = "[accouncements]"
dbwhere = ""
a_search = ""
b_search = ""
%> <%
' Get search criteria for basic search
pSearch = Request.QueryString("psearch")
If pSearch <> "" Then
pSearch = replace(pSearch,"'","''")
pSearch = replace(pSearch,"[","[[]")
b_search = b_search & "[Title] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[SmallNotes] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[DetailedNotes] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[categoria] LIKE '%" & pSearch & "%' OR "
End If
If len(b_search) > 4 Then
b_search = mid(b_search,1,len(b_search)-4)
b_search = "(" & b_search & ")"
End If
%> <%
'Build search criteria
If a_search <> "" Then
dbwhere = dbwhere & a_search 'advance search
ElseIf b_search <> "" Then
dbwhere = dbwhere & b_search 'basic search
End If
'Save search criteria
If dbwhere <> "" Then
Session("tablename") = tablename
Session("dbwhere") = dbwhere
'reset start record counter
startRec = 1
Session("accouncements_REC") = startRec
Else
If tablename = Session("tablename") Then
dbwhere = Session("dbwhere")
Else
'reset search criteria
dbwhere = ""
Session("dbwhere") = dbwhere
End If
End If
'Get clear search cmd
If Request.QueryString("cmd").Count > 0 then
cmd=Request.QueryString("cmd")
If ucase(cmd) = "RESET" Then
'reset search criteria
dbwhere = ""
Session("dbwhere") = dbwhere
End If
End If
%> <%
' Load Default Order
DefaultOrder = "date"
DefaultOrderType = "DESC"
' Check for an Order parameter
OrderBy = ""
If Request.QueryString("order").Count > 0 Then
OrderBy = Request.QueryString("order")
' Check if an ASC/DESC toggle is required
If Session("accouncements_OB") = OrderBy Then
If Session("accouncements_OT") = "ASC" Then
Session("accouncements_OT") = "DESC"
Else
Session("accouncements_OT") = "ASC"
End if
Else
Session("accouncements_OT") = "ASC"
End If
Session("accouncements_OB") = OrderBy
Session("accouncements_REC") = 1
Else
OrderBy = Session("accouncements_OB")
if OrderBy = "" then
OrderBy = DefaultOrder
Session("accouncements_OB") = OrderBy
Session("accouncements_OT") = DefaultOrderType
End If
End If
' Check for a START parameter
If Request.QueryString("start").Count > 0 Then
startRec = Request.QueryString("start")
Session("accouncements_REC") = startRec
Else
startRec = Session("accouncements_REC")
if not isnumeric(startRec) or startRec = "" then
'reset start record counter
startRec = 1
Session("accouncements_REC") = startRec
End If
End If
' Open Connection to the database
set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str
' Build Query
strsql = "select * from [accouncements1]"
If dbwhere <> "" Then
strsql = strsql & " WHERE " & dbwhere
End If
if OrderBy <> "" then
strsql = strsql & " ORDER BY [" & OrderBy & "] " & Session("accouncements_OT")
end if
'response.write strsql
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount
%>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<META NAME="AUTHOR" CONTENT="DANIELE ASUNIS danieleasunis.com">
<META NAME="description" CONTENT="WWW.DANIELEASUNIS.COM - ARTE - DESIGN - SPIRITUALITA' - ATTUALITA' - SHOPPING - COMMUNITY - LIFESTYLE">
<TITLE>ASUNIS&CO - A DESIGN FOR LIFE</TITLE>
<META NAME="keywords" CONTENT="ARTE, DESIGN, SPIRITUALITA', ATTUALITA', SHOPPING, COMMUNITY, LIFESTYLE">
<LINK REL="stylesheet" TYPE="text/css" HREF="../sadhana/asunis_global.css">
<LINK REL="stylesheet" TYPE="text/css" HREF="../sadhana/asunis_menu.css">
<LINK REL="shortcut icon" HREF="http://www.asunis.com/favicon.ico">
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript" SRC="../sadhana/slideshow.js">
</SCRIPT>
</HEAD>
<BODY TOPMARGIN="7">
<DIV ALIGN="center">
<CENTER>
<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="417">
<TR>
<TD WIDTH="426">
</TD>
</TR>
<TR>
<TD WIDTH="426" ALIGN="center" VALIGN="top">
<DIV ALIGN="center">
<CENTER>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="316">
<TR>
<TD WIDTH="373">
<TABLE CLASS="nav" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
<TR>
<TD WIDTH="100%">
<P ALIGN="right">
<%
if totalRecs > 0 then
' Find out if there should be Backward or Forward Buttons on the table.
If startRec = 1 Then
isPrev = False
Else
isPrev = True
PrevStart = startRec - displayRecs
If PrevStart < 1 Then PrevStart = 1 %>
<A CLASS="def" HREF="definitiva.asp?start=<%=PrevStart%>&slink1=si">
«</A> - <%
End If
' Display Page numbers
If (isPrev OR (NOT rs.EOF)) Then
If (NOT isPrev) Then Response.Write ""
x = 1
y = 1
dx1 = ((startRec-1)\(displayRecs*recRange))*displayRecs*recRange+1
dy1 = ((startRec-1)\(displayRecs*recRange))*recRange+1
If (dx1+displayRecs*recRange-1) > totalRecs then
dx2 = (totalRecs\displayRecs)*displayRecs+1
dy2 = (totalRecs\displayRecs)+1
Else
dx2 = dx1+displayRecs*recRange-1
dy2 = dy1+recRange-1
End If
While x <= totalrecs
If x >= dx1 and x <= dx2 Then
If Clng(startRec) = Clng(x) Then %>
<FONT FACE="Verdana" STYLE="font-size: 11px">[<%=y%>]</FONT>
<% Else %>
<%=y%>
<% End If
x = x + displayRecs
y = y + 1
elseif x >= (dx1-displayRecs*recRange) and x <= (dx2+displayRecs*recRange) then
if x+recRange*displayRecs < totalRecs then %>
<%=y%>
<% else
ny=(totalRecs-1)\displayRecs+1
if ny = y then %>
<%=y%>
<% else %>
<%=y%>
<% end if
end if
x=x+recRange*displayRecs
y=y+recRange
else
x=x+recRange*displayRecs
y=y+recRange
End If
Wend
End If
' Next link
If NOT rs.EOF Then
NextStart = startRec + displayRecs
isMore = True %>-
<A CLASS="def" HREF="definitiva.asp?start=<%=NextStart%>&slink1=si">
»</A> <% Else
isMore = False
End If %>
</P>
</TD>
</TR>
<% Else %>
<TR>
<TD STYLE="border: 0px solid #FFFFFF" ALIGN="right">
[img]../images/grafica/banner_admin/no_results.gif[/img]
<% End If %> </TD>
</TR>
</TABLE>
<TABLE CLASS="anteprima" CELLPADDING="0" CELLSPACING="0" WIDTH="99%">
<%
'Avoid starting record > total records
if clng(startRec) > clng(totalRecs) then
startRec = totalRecs
end if
'Set the last record to display
stopRec = startRec + displayRecs - 1
'Move to first record directly for performance reason
recCount = startRec - 1
if not rs.eof then
rs.movefirst
rs.move startRec - 1
end if
recActual = 0
Do While (NOT rs.EOF) AND (recCount < stopRec)
recCount = recCount + 1
If Clng(recCount) >= Clng(startRec) Then
recActual = recActual + 1 %> <%
'set row color
bgcolor="#FFFFFF"
%> <%
' Display alternate color for rows
If recCount mod 2 <> 0 Then
bgcolor="#Ffffff"
End If
%> <%
x_Immagine = rs("Immagine")
x_Title = rs("Title")
x_SmallNotes = rs("SmallNotes")
x_date = rs("date")
%>
<TR>
<TD WIDTH="100%">
[img]../images/grafica/struttura/spacer.gif[/img]</TD>
</TR>
<TR>
<TD CLASS="anteprima" WIDTH="100%" HEIGHT="90">
[img]<% response.write x_Immagine %>[/img]
<H2>
<A STYLE="font-family: Verdana; font-size: 11px; color: #000000; text-decoration: none; font-weight: bold" HREF="<% If not isnull(rs("ID")) Then response.write "asunis_start.asp?key=" & Server.URLEncode(rs("ID")) Else response.write "javascript:alert('Invalid Record! Key is null.');"%>&slink=si">
<% response.write x_Title %></A></H2>
<P ALIGN="justify">
<A STYLE="font-family: Verdana; font-size: 10px; color: #666666; text-decoration: none" HREF="<% If not isnull(rs("ID")) Then response.write "asunis_start.asp?key=" & Server.URLEncode(rs("ID")) Else response.write "javascript:alert('Invalid Record! Key is null.');"%>&slink=si">
<% response.write x_SmallNotes %></A></P>
</TD>
</TR>
<%end if
rs.MoveNext
Loop
%>
</TABLE>
<TABLE CELLPADDING="0" CELLSPACING="0" HEIGHT="15" WIDTH="100%" STYLE="border-collapse: collapse" BORDERCOLOR="#111111">
<TR>
<TD WIDTH="100%" ALIGN="center">
[img]../images/grafica/struttura/spacer.gif[/img]</TD>
</TR>
<TR>
<TD WIDTH="100%" ALIGN="center" STYLE="border-left-width: 1; border-right-width: 1; border-top: 2px solid #dfd9d9; border-bottom-width: 1">
[img]../images/grafica/struttura/spacer.gif[/img]</TD>
</TR>
<TR>
<TD WIDTH="100%" ALIGN="center">
</TD>
</TR>
</TABLE>
</TD>
</TD>
</TR>
</TABLE>
</CENTER>
</DIV>
</TD>
</TR>
<TR>
<TD WIDTH="426" ALIGN="center" VALIGN="top"></TD>
</TR>
</TABLE>
</CENTER>
</DIV>
</CENTER>
</FORM>
</BODY>
</HTML>
mentre il codice della pag che visualizza l'articolo è nel prossimo post...
Ringrazio chi riesce e/o può darmi una mano!