Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    problema di validazione

    Con il codice sotto riportato realizzo un sistema di paginazione, tutto funziona perfettamente, tranne che per un problema nella validazione.
    Se non riempio tutti i campi del form di ricerca, la query prende dei parametri di default. In questo modo però il link della paginazione si porta dietro alcuni parametri vuoti, generando un'errore di validazione della pagina, anche se il sistema funziona correttamente. Qualche suggerimento?
    <%@LANGUAGE="VBSCRIPT"%>


    <%
    'Numero di record visualizzati per pagina
    Record_Pagina = 3
    'Numero di Pagine visualizzate nei link
    Numerazione_Max = 6
    Dim Rec__varfdata1, Rec__varfdata2, Rec__oggetto, Rec__appalto, Rec__gara
    Rec__varfdata1 = "01/01/2000"
    If (Request("f_datas") <> "") Then
    Rec__varfdata1 = Request("f_datas")
    End If
    Rec__varfdata2 = "31/12/2010"
    If (Request("f_datas2") <> "") Then
    Rec__varfdata2 = Request("f_datas2")
    End If
    Rec__oggetto = "'%%'"
    If (Request("f_oggetto") <> "") Then
    Rec__oggetto ="'%"&Request("f_oggetto")&"%'"
    End If
    Rec__appalto = "idappalto between 0 and 9999"
    If (Request("f_appalto") <> "") Then
    Rec__appalto ="idappalto="&Request("f_appalto")
    End If
    Rec__gara = "idgara between 0 and 9999"
    If (Request("f_gara") <> "") Then
    Rec__gara ="idgara="&Request("f_gara")
    End If



    Dim Conn
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open (MM_conn_bandi_STRING)

    sql = "SELECT * FROM bandi where scadenza between #"+ Rec__varfdata1 +"# and #" + Rec__varfdata2 +"# and oggetto like "+Rec__oggetto+" and "+Rec__appalto+" and "+Rec__gara+" Order by scadenza desc"
    Set Rec = Server.CreateObject ("ADODB.Recordset")
    Rec.PageSize = Record_Pagina
    Rec.Open sql, Conn, 3, 3
    'Recupero il numero della pagina corrente
    Pag = CInt(Request.Querystring("pag"))
    'Controllo che il numero di pagina sia corretto
    If (Not Rec.Eof) Then
    If Pag>Rec.PageCount Then
    Pag = Rec.PageCount
    End If
    If Pag = 0 Then
    Pag = 1
    End If
    'Setto la pagina corrente
    Rec.AbsolutePage = Pag
    Rec_total = Rec.Recordcount
    'Ora prepariamo i link alle pagine
    indice_inizio = pag-(Numerazione_Max/2)
    If (indice_inizio>(Rec.PageCount-Numerazione_Max)) Then
    indice_inizio = Rec.PageCount-Numerazione_Max+1
    End If
    If (indice_inizio<=0) Then
    indice_inizio = 1
    End if
    indice_fine=indice_inizio+Numerazione_Max-1
    If (indice_fine>Rec.PageCount) Then
    indice_fine = Rec.PageCount
    End If
    'Link alla prima pagina
    Link = "&laquo; |"
    'Link alle pagine precedenti
    If (indice_inizio<>1) Then
    Link=Link&" precedente |"
    End If
    For i=indice_inizio to indice_fine
    'Pagina attuale
    If (i=pag) then
    Link = Link&" [ "&i&" ] "
    'Link alle altre pagine
    Else
    Link = Link&"[ "&i&" ] | "
    End If
    Next
    'Link alle pagine successive
    If (indice_fine<Rec.PageCount-1) Then
    Link = Link&" succesiva | "
    End If
    'Link all'ultima pagina
    Link=Link&" &raquo; "
    End If
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi costruire tutta la stringa di query che agggiungi nella paginazione in maniera dinamica, ovvero mettere i parametri nel link solo se risultano effettivamente pieni (dal form).
    La modifica al volo che puoi fare è mettere nel link ell paginazione la request del parametro e non la variabile artificiale costruita da te.

    Roby

  3. #3

    Re: problema di validazione

    scusami quale sarebbe la variabile costruita artificialmente da me?
    potresti farmi un esempio? Non ho capito dove devo agire per risolvere il problema

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questa ad esempio:
    codice:
    If (Request("f_oggetto") <> "") Then 
    Rec__oggetto ="'%"&Request("f_oggetto")&"%'" 
    End If
    Crei ariabili ad uso e consumo della query che fai dopo... però le stesse variabili le metti nel link della paginazione e quindi varranno sempre qualcosa...
    Nei link metti la Request("f_oggetto"), ad esempio, al posto della variabile.

    Roby

  5. #5
    sto provando...

  6. #6
    perdonami ma la testa non mi funziona più.... ma nei miei link non utilizzo già il request? boh sono fuso... mandami pure a quel paese...

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Cavolo... VVoVe:
    Non avevo visto...
    Ad ogni modo devi costruire la stringa nei link in maniera dinamica.

    codice:
    sLink = ""
    If (Request("f_oggetto") <> "") Then 
    sLink = slink &"&f_oggetto = "& Request("f_oggetto")
    End If 
    ...
    ...
    e così per ogni elemento dei link.
    Alla fine la variabile sLink conterrà SOLO i parametri pieni.

    Roby

  8. #8
    stavolta mi sa che siamo sulla strada giusta... ti farò sapere... grazie mille

  9. #9
    ho scritto questo orrore....

    Link = "http://"") Then f_data =request("f_d...""40"">&laquo; |"

    ma ovviamente mi dà errore.. sono comunque sulla strada giusta?

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    No.
    Devi seguire il mio suggerimento: creare prima la variabile sLink.

    Roby

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.