Newsgroup: it.lavoro.professioni.webmaster
Titolo: asp help

Scusate ma non ce la faccio proprio a mettere a posto questa maledetta ricerca.
Il mio problema č che non riesco a far si che dopo la ricerca che visualizza 10
record per pagina, cliccando sul tasto "successivo" mi ritorni i record in modo
corretto. Sembra che ci sia un problema nel passaggio dei parametri da una
pagina all'altra.
Es. Se nella tabella ho 30 record e faccio una ricerca in modo che ne trovi solo
15, la prima pagina č OK, mentre se clicco sul tasto "successivo" sorgono i
problemi in quanto mi fa vedere tutti i record del db. Per spiegarmi meglio
posto il codice. Ringrazio anticipatamente coloro che avessero voglia di darmi
una mano.
Nella pagina "soluzioni.asp" c'č il form:
    <form action="search.asp" method="post">
     <input type="Text" name="StringaDaCercare" size="25"
style="background-color : Silver;">
     <input type="image" src="images/submit.gif" width=44 height=20
align=absmiddle border=0
    </form>
La pagina "search.asp" include "pagesize.asp" (ovvero il codice seguente):
<%
    'Set how many records per page we want
    Const NumPerPage = 10
    'Retrieve what page we're currently on
    Dim CurPage
    If Request.QueryString("CurPage") = "" then
        CurPage = 1 'We're on the first page
    Else
        CurPage = Request.QueryString("CurPage")
    End If
    Dim connSearch
    Set connSearch = Server.CreateObject("ADODB.Connection")
    connSearch.Open "soluzioni"
    'Explicitly Create a recordset object
    Dim rsSearch
    Set rsSearch = Server.CreateObject("ADODB.Recordset")
    'Set the cursor location property
    rsSearch.CursorLocation = adUseClient
    'Set the cache size = to the # of records/page
    rsSearch.CacheSize = NumPerPage
 Dim cerca
 cerca = Request.Form("StringaDaCercare")
 if cerca = "" then cerca = "%"
    'Open our recordset
    Dim searchSQL
    searchSQL = "SELECT * FROM tabSoluzioni WHERE Titolo LIKE '%"&cerca&"%'"
 searchSQL = searchSQL & "ORDER BY Titolo ASC;"
 rsSearch.Open searchSQL, ConnSearch
    rsSearch.MoveFirst
    rsSearch.PageSize = NumPerPage
    'Get the max number of pages
    Dim TotalPages
    TotalPages = rsSearch.PageCount
    'Set the absolute page
    rsSearch.AbsolutePage = CurPage
%>
<table cellpadding="0" cellspacing="2" border="0">
<tr>
 <td colspan="2">
 <%
 'Print out the current page # / total pages
    Response.Write FONT1
 Response.Write("Pagina " & CurPage & " di " & TotalPages)
 %>
 </td>
</tr>
<tr>
 <td width="400" align="center" bgcolor="#C5C5E2">
 <% Response.Write FONT1 %><b>Titolo</b></font></td>
 <td width="150" align="center" bgcolor="#C5C5E2">
 <% Response.Write FONT1 %><b>Lingua</b></font></td>
</tr>
<%
    'Counting variable for our recordset
    Dim count
    'Set Count equal to zero
    Count = 0
 Dim titolo
 Dim lingua
 Dim cat
 Dim id
    Do While Not rsSearch.EOF And Count < rsSearch.PageSize
        Count = Count + 1
  titolo = rsSearch("Titolo")
  lingua = rsSearch("Lingua")
  cat = rsSearch("Categoria")
  id1 = rsSearch("Doc_ID")
  Response.Write vbTab & "<tr>" & vbCrLf
  Response.Write vbTab & vbTab & "<td>"
  Response.Write FONT1
  Response.Write "<b>"
  Response.Write "<a href=testo_soluz.asp?cat="&cat&"&ID="&id1&">"
  Response.Write titolo
  Response.Write "</a></font></b>"
  Response.Write "</td>" & vbCrLf
  Response.Write vbTab & vbTab & "<td>"
  Response.Write FONT1
  Response.Write lingua
  Response.Write "</a></font></td>" & vbCrLf
  Response.Write vbTab & "</tr>" & vbCrLf
        rsSearch.MoveNext
    Loop
    'Display Next / Prev buttons
 Response.Write vbTab & "<tr>" & vbCrLf
 Response.Write vbTab & vbTab & "<td colspan=""2"" align=""center"">"
 Response.Write "<br><form>"
    if CurPage > 1 then
        'We are not at the beginning, show the prev button
        Response.Write("<INPUT TYPE=BUTTON VALUE=Precedente
ONCLICK=""document.location.href='search.asp?curpage=" & CurPage - 1 & "';"">")
    End If
 Response.Write "&nbsp;&nbsp;&nbsp;"
 if CInt(CurPage) <> CInt(TotalPages) then
        'We are not at the end, show a next button
        Response.Write("<INPUT TYPE=BUTTON VALUE=Successiva
ONCLICK=""document.location.href='search.asp?curpage=" & CurPage + 1 & "';"">")
    End If
 Response.Write "</form>"
 Response.Write vbTab & vbTab & "</td>" & vbCrLf
 Response.Write vbTab & "</tr>" & vbCrLf
 Response.Write "</table>"
rsSearch.Close
Set rsSearch = Nothing
ConnSearch.Close
Set ConnSearch = Nothing
%>








disse:
Il problema probabilmente è questo:
  <form action="search.asp" method="post">
e poi tutte le volte che devi leggere un parametro
   If Request.QueryString("CurPage") = "" then
Se come method del form imposti POST poi per recuperare i parametri
devi usare 
   Request.form
e non 
   Request.QueryString
Quindi o fai diventare il method GET oppure sostituisci tutti i
Request.QueryString con Request.form
Ti consiglio il secondo modo (tieni il POST e usa Request.form)
Ciao
ZeroUno
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Nelle profondità del nostro inconscio c'è un bisogno ossessivo 
di un universo logico e coerente. 
Ma il vero universo è sempre un passo al di là della logica.
dalla "Raccolta dei detti di Muad'Dib", della Principessa Irulan
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=