Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Ciclo for e nessuna visualizzazione

    Ciao a tutti...
    Ho un grosso problema con la numerazione delle pagine in un sito.
    Vi posto il codice così date un'occhiata.

    codice:
    <%
    TotPages = rsNews.PageCount
    
    If TotRecords > perpage then
    
    	If page = 1 then
    	%>
    		[1
    		<%
    		For a = 1 to a = 3
    			If (page+a) <= TotPages then
    				%>
    				<%=(page+a)%>
    				<%
    				a = a + 1
    			end if
    		Next
    		%>
    			>
    			>>
    			]
    
    		<%
    	else
    		If page = TotPages then
    			%>
    			[
    			<<
    			<
    			<%
    			For b = 3 to b = 1
    				If (page-b) >= 1 then
    				%>
    					<%=(page-b)%>
    				<%
    					b = b - 1
    				end if
    			Next
    			%>
    				<%=TotPages%>]
    
    			<%
    		else
    		%>
    			[
    			<<
    			<
    			<%
    			For b = 3 to b = 1
    				If (page-b) >= 1 then
    				%>
    					<%=(page-b)%>
    				<%
    					b = b - 1
    				end if
    			Next
    			%>
    			<%=page%>
    			<%
    			For a = 1 to a = 3
    				If (page+a) <= TotPages then
    					%>
    					<%=(page+a)%>
    					<%
    					a = a + 1
    				end if
    			Next
    			%>
    				>
    				>>
    				]
    
    		<%
    		end if
    	end if
    end if
    %>
    "perpage" è la variabile che dice alla pagina quanti record visualizzare.

    Allora questo script dovrebbe mostrarmi una "pulsantiera" diversa a seconda dei casi.

    - Se la pagina è l'unica non mostra nulla

    - Se la pagina è la prima deve mostrarmi [ 1 2 3 > >> ]
    (le pagine seguenti alla prima vengono controllate xkè se le pagine sono solo 2 deve mostrarmi 1 2 > >> ecc... )

    - Se la pagina è l'ultima deve mostrarmi [ << < 2 3 4 ]
    (sempre controllate come sopra perchè se la pagina precedente è la prima mi deve mostrare << < 1 2 )

    - Se la pagina sta in altre parti deve mostrarmi [ << < 1 2 3 4 5 > >> ]
    (e il solito controllo ma da entrambe le parti)

    Questo script che ho realizzato non funzia però e non riesco a capire il perchè!!!
    A cominciare dal fatto che quando mi trovo sull'ultima pagina mi mostra la "pulsantiera" come se fossi in mezzo tra la prima e l'ultima pagina, e lo script non mi mostra i link creati all'interno dei cicli "for"

    Qualcuno può aiutarmi?
    Shryne
    --------------------------------------------------
    WebMaster di Loskabrones.net
    --------------------------------------------------

  2. #2
    nessuno?
    Shryne
    --------------------------------------------------
    WebMaster di Loskabrones.net
    --------------------------------------------------

  3. #3
    non fa ESATTAMENTISSIMAMENTE quello che chiedi, però è adattabile:

    codice:
    'per stampare il menu numerico delle pagine
    function stampaPagine(totPagine,attuale)
    dim max,lstart,tstart,txt,nxt,bxt,totale
    
    totale=totPagine
    
    dim href_class,var_page,selected_class,separatore
    
    '*********************** SETTINGS
    max=5 				'numero di link visualizzati contemporaneamente
    href_class="" 		'classe da applicare al link dei collegamenti
    var_page="pagina"	'variabile in querystring con il numero di pagina richiesta
    selected_class="" 	'classe per la pagina selezionata
    separatore=" - "	'separatore dei numeri
    '*********************** END SETTINGS
    
    if totale<= max then
    	lstart=1
    	tstart=totale
    else
    	mtp=int(attuale/max)
    	lstart=max*(mtp)
    	tstart=lstart+max
    end if
    
    if attuale>1 then
    	bxt=attuale-1
    	txt=txt & "&lt;&lt;"
    	txt=txt & " &lt; "
    end if
    
    if lstart=0 then lstart=1
    	if tstart>totale then tstart=totale
    	
    	for i=lstart to tstart
    		if i>lstart then txt=txt & separatore
    		
    		if i=attuale then
    			txt=txt & "<span class=""" & selected_class & """>" & i & "</span>"
    		else
    			txt=txt & " " & i & ""
    		end if
    	next
    
    nxt=attuale+1
    if nxt>totale then nxt=totale
    if nxt>=lstart and totale>1 and nxt<totale then txt=txt & " &gt;"
    if totale>1 and totale>nxt then txt=txt & " &gt;&gt;" 
    
    stampaPagine=txt
    end function
    
    
    
    
    'ricavo la pagina attuale
    dim pagina_attuale
    pagina_attuale=request.QueryString("pagina")
    if len(trim(pagina_attuale))=0 then 
    	pagina_attuale=1
    else
    	pagina_attuale=cint(pagina_attuale)
    end if
    
    'numero di pagine totali
    dim num_page_totali
    num_page_totali=40
    
    
    response.Write stampaPagine(num_page_totali,pagina_attuale)

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.