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

    Funzione che potrebbe servire a qualcuno (recupero variabili da url)

    Ciao a tutti,

    Oggi mi trovavo nell'esigenza di dover recuperare tutte le variabili da un url sul quale mi trovavo e di redirigere alla stessa pagina ma con il valore di una variabile cambiato oppure, se non era presente, aggiunto.

    Così mi ci sono messo ed ho creato una funzione che magari potrebbe servire a qualcun altro, e così la metto a disposizione di tutti.

    Creo un nuovo post perchè non ho trovato più il thread in evidenza sulle funzioni.

    Questo è il codice:

    codice:
    ' ******************************************************
    ' funzione per sostituire il valore di una variabile
    '    nell'url conservando i valori di tutte le altre 
    '   variabili presenti. Utile per creare collegamenti
    '
    '    es. ' <a href="?<% = getUrlVariables("pag",4)%>">
    '
    '             by SGr33n - www.ircaserta.com
    ' *******************************************************
    
    function getUrlVariables(varName,value)
    
    	Dim saryVars
    	Dim intLenVar
    	Dim blnReplaced
    	Dim return
    	Dim i
    	
    	blnReplaced = CBool("0")
    
    	saryVars = Split(Request.ServerVariables("QUERY_STRING"),"&")
    	intLenVar = Len(varName) + 1
    
    	for i = LBound(saryVars) to UBound(saryVars)
    	  if Left(saryVars(i),intLenVar) = varName & "=" Then
    	  	return = return & varName & "=" & value
    	  	if i <> UBound(saryVars) Then return = return & "&"
    	  	blnReplaced = CBool("1")
    	  else
    	    return = return & saryVars(i)
    	    if i <> UBound(saryVars) Then return = return & "&"
    	  end if
    	next
    	
    	if blnReplaced = False Then return = return & "&" & varName & "=" & value
    	getUrlVariables = return
    end function
    I valori da passare sono il primo il nome della variabile ed il secondo il valore della stessa.

    Facciamo un esempio proprio sul forum in questione:

    Mi trovo alla pagina:
    http://forum.html.it/forum/newthread...ead&forumid=35

    E voglio creare un collegamento alla stessa pagina ma con il forumid=40, basterà fare così:

    codice:
    Clicca qui
    Niente di + facile

    Bye

    P.S. Fatemi sapere qualche impressione
    SGr33n

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E il forumid=40 dov'è??

    Roby

  3. #3
    io sinceramente non ho ben capito l'utilita di questa funzione...praticamente aggiungo una variabile di mia scelta alla querystring che avevo precedentemente? oppure se c'è la aggiorno è esatto?

  4. #4
    Originariamente inviato da Roby_72
    E il forumid=40 dov'è??

    Roby
    Mi sono confuso :P ho scritto 35 al posto di 40 :P lol
    SGr33n

  5. #5
    Originariamente inviato da santino83
    io sinceramente non ho ben capito l'utilita di questa funzione...praticamente aggiungo una variabile di mia scelta alla querystring che avevo precedentemente? oppure se c'è la aggiorno è esatto?
    Si esatto, e perchè non ne vedi l'utilità ? a me è servito
    SGr33n

  6. #6
    beh si in effetti ha la sua utilità

    la terrò a mente

  7. #7
    non funzia con capitalizzazioni diverse. se nella qs c'e' "PIPPO" e cerchi di modificare "pippo"....

  8. #8
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Curiosità: Hai iniziato a programmare in asp.net e poi in asp?

    codice:
    Function GetUrlVariables(varName,value)
    Dim ArQuery(),bReplaced,i,Key,KeyValue ,Count
    	count = Request.QueryString.Count
    	If Count = 0 then
    		GetUrlVariables = VarName & "=" & Escape(Value)
    		Exit function
    	End if
    	i=-1:bReplaced = False
    	Redim ArQuery(Count)
    	For Each Key In Request.QueryString
    		If StrComp(Key,VarName,1) = 0 then
    			KeyValue = Value:bReplaced =true
    		else
    			KeyValue = Request.QueryString(key)
    		End if
    		i=i+1
    		arQuery(i) = Key & "=" &  Escape(KeyValue)
    	Next
    	If Not bReplaced then arQuery(i+1) = VarName & "=" &  Value 
    	GetUrlVariables = join(arQuery,"&")
    End Function
    Comunque si può semplicemente usare una inStr e qualche mid

  9. #9
    We baol no... ho cominciato da asp... perchè si denotava il contrario ? per il fatto che ho usato il ciclo ?

    @optime non ho capito bene, intendi dire che è case sensitive ?
    Ovviamente la segnalazione di eventuali bug è gradita :P
    SGr33n

  10. #10
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    No, perchè hai usa cBool("0")

    Optime intendeva proprio quello che hai detto.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.