11 messaggi dal 17 settembre 2001
sono disperato aiuto!
Scusate tanto, ma se qualcuno non mi risponde mi uccido!!!
Dunque: ho creato un motorino di ricerca collegato ad un db, e ho necessità di paginare i risultati.
Dunque: quando questi sono su una sola pagina va bene, ma quando le pagine sono di più, la divisione con i tasti avanti e indietro funzione, MA MI VISUALIZZA TUTTI I RECORD a prescindere dalla chiave di ricerca!!! Non so come fare a passare il valore della ricerca a tutte la pagine!!!
Vi posto il codice, e vi prego di dirmi dove ho sbagliato


<!-- #INCLUDE FILE="adovbs.inc" -->
<%

Dim conn
'La solita variabile di connessione

Dim iPageSize
'Numero di record da visualizzare per ogni pagina

Dim iPageCount
'Numero di pagine totali che otteniamo dalla query

Dim iPageCurrent
'Pagina corrente

Dim strOrderBy
'Parametro in base a cui definire l'ordinamento

Dim strSQL
'Comando da eseguire per effettuare la ricerca

Dim RS
'Il nostro solito recordSet

Dim iRecordsShown
'Variabile usata per definire i record mostrati

Dim MioArray

iPageSize = 5

MioArray=Request.Form("luigi")

If Request.QueryString("page") = "" Then

iPageCurrent = 1

Else

iPageCurrent = CInt(Request.QueryString("page"))

End If

If Request.QueryString("order") = "" Then

strOrderBy = "id"

Else

strOrderBy = Request.QueryString("order")

End If

Set Conn = Server.CreateObject("ADODB.Connection")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("link.mdb")

Set RS = Server.CreateObject("ADODB.Recordset")

sql = "SELECT * FROM link WHERE Descrizione LIKE '%" & MioArray & "%' ORDER BY " & strOrderBy & " DESC;"

RS.Open sql, conn, adOpenKeyset

RS.PageSize = iPageSize

RS.CacheSize = iPageSize

iPageCount = RS.PageCount

If iPageCurrent > iPageCount Then iPageCurrent = iPageCount

If iPageCurrent < 1 Then iPageCurrent = 1

If iPageCount = 0 Then

Response.Write("Nessun record visualizzato")

Else

RS.AbsolutePage = iPageCurrent

iRecordsShown = 0

Do While iRecordsShown < iPageSize And Not RS.EOF

%>

<p><% response.write(rs("descrizione")) %><br>

<a href="<% = (rs("link")) %>" target="_blank">

<% = (rs("link")) %></a>

</p>

<%

iRecordsShown = iRecordsShown + 1

RS.MoveNext

Loop

End If

RS.Close

Set RS = Nothing

Conn.Close %>

<%

If iPageCurrent <> 1 Then

%>

<a href="paginazione.asp?ricerca=<%= Server.UrlEncode(MioArray) %>&page=<%= iPageCurrent - 1 %>&order=<%= Server.URLEncode(strOrderBy) %>"> Indietro</a>

<%

End If

%><br>

<%

If iPageCurrent < iPageCount Then

%>

<a href="paginazione.asp?ricerca=<%= Server.UrlEncode(MioArray) %>&page=<%= iPageCurrent + 1 %>&order=<%= Server.URLEncode(strOrderBy) %>">Avanti</a>

<%

End If

%>


Grazie infinite





Il problema è qui:

<code>
MioArray=Request.Form("luigi")
If Request.QueryString("page") = "" Then
</code>

quando vai avanto o indietro usi la GET e non puoi fare una request.form. Per ovviare al problema usa sempre Request("nomecampo") che è generica e funziona con tutti e due i modi.

Ciao

Andrea Palmatè
<b>Community Manager di http://www.aspitalia.com</b>

--
Andrea Palmatè

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.