Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Paginazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263

    Paginazione

    Si, lo so, il tema è stato ampiamente trattato, ma non riesco a venirne fuori.
    Vi posto il codice, peraltro veramente semplice e molto breve: alla procedura passo un parametro (category) e vorrei che l'interrogazione del db (Access) venisse paginata. Nel caso specifico, tre record per pagina (numXpag=3).
    La prima interrogazione mi fa effettivamente vedere i primi tre record, ma quando seleziono la pagina 2, non mi fa vedere nulla (manco una riga vuota della tabella !), mentre invece dovrebbe
    visualizzarmi altri due record.

    In realtà il codice l'ho trovato e l'ho riadattato, ma comincio a pensare che neanche l'originale funzionava a dovere.
    Vi ringrazio per l'aiuto che riuscirete a darmi.

    Marco

    <%
    categoria=request.Form("category")
    pag=request("p")
    if pag="" then pag="1"
    numXpag=3


    dim stringa_conn
    stringa_conn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("storeDB")


    dim objconn
    set objconn=server.CreateObject("adodb.connection")
    objconn.open stringa_conn
    %>

    <html>
    <head><title>Elenca Categorie Prodotti</title></head>

    <%
    ' Elenca categorie

    sql="select * from Products where product_category='"&categoria&"' ORDER BY product_name"

    dim objrs
    set objrs=server.CreateObject("adodb.recordset")
    objrs.pagesize=numXpag
    objrs.open sql, stringa_conn ,3,3
    if not objrs.eof then
    numpagine=objrs.pagecount
    objrs.absolutepage=cint(pag)
    %>
    <table align="center" width="600" border="1">
    <%for i=1 to numXpag %>

    <tr>
    <td width="200"><%response.Write objrs("product_name")%></td>
    <td width="200"><%response.Write objrs("product_price")%></td>
    <td width="100"><%response.Write objrs("product_category")%></td>
    <td width="100">"> Dettagli </td>
    </tr>
    <%
    objrs.movenext
    if objrs.eof then exit for
    next
    %>
    </table>
    <table>
    <tr>
    <td>
    <%
    for i=1 to numpagine
    %>
    <%=i%>
    <%
    next
    %>
    </td>
    </tr>
    </table>
    <%
    end if
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    1) nei link devi ripassare la categoria altrimenti cosa ne sa?

    codice:
    <%=i%>
    2) La categoria la recuperi sempre e solo con request.form e quindi dal link non la recupereresti mai:

    codice:
    categoria=request.Form("category")
    Scrivi sempre categoria, usa una sola variabile. Anche dal form.

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Roby grazie, ma adesso che probabilmente sono ad un passo dalla soluzione non mi scappi: la prima linea di codice che mi hai suggerito l'ho inserita al posto della
    <%=i%>

    ma il secondo suggerimento non l'ho capito: dove devo inserire la riga di codice ? all'interno del ciclo for ?

    Mi spiace, ma, come avrai ben capito, non sono un esperto di asp....

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi sosituire questa:

    codice:
    categoria=request.Form("category")
    con

    codice:
    categoria=request("category")
    Ma ripeto: devi cambiare nome alla variabile proveniente dal form, deve chiamarsi categoria, non category.
    In questo modo quella sopra la farai diventare:

    codice:
    categoria=request("categoria")
    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    263
    Sei un drago !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.