Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    eliminare valori doppi da una variabile session

    avendo una variabile session così composta:

    1,1,4,7,8,7,3,4

    Come posso eliminare i valori doppi, trasformandola cosi':
    1,4,7,8,3

    Non e' importante l'ordine in cui vengono inseriti i valori.

    grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Aggiungi la virgola alla fine e poi usa un instr per ogni valore generato da uno split...

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    avevo pensato di effettuare il controllo in fase di inserimento, ecco l'esempio del controllo della variabile e della sessione:
    codice:
    ' controllo se la variabile articoli contiene valori
    IF request.querystring("articoli") <> "" THEN
       'controllo della variabile session
       IF session("IDFILM") = "" THEN
       session("IDFILM") = request.querystring("articoli")
       ELSE
       session("IDFILM") = session("IDFILM") + "," + request.querystring("articoli")
       END IF
    END IF
    in poche parole da un link passo un valore tramite variabile "ARTICOLI" ad una pagina. Puo' capitare che l'utente possa cliccare su dei link aventi stesso valore... vorrei eliminare a monte il problema senza effettuare il controllo di "pulizia doppi campi" in seguito.
    Ho pensato di creare un array, creo un ciclo e se dopo il controllo il valore inserito non e' presente nell'array l'aggiungo con una virgola alla sessione.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    scusami, per l'ignoranza non sono un grande esperto di asp, ma non saprei come implementare quello che tu mi hai consigliato.

    potresti farmi un esempio, grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    OK risolto così.
    Penso che tu voglia dire questo?

    Grazie per il consiglio, e' stato fondamentale...

    codice:
    'controllo della variabile
    IF request.querystring("articoli") <> "" THEN
    	'controllo della variabile session
    	IF session("IDFILM") = "" THEN
    	session("IDFILM") = request.querystring("articoli")
    	ELSE
    		controllo = session("IDFILM")
    		controllo = controllo + ","
    		controllo = right(controllo, instr(controllo, ","))
    		IF controllo = request.querystring("articoli") & "," THEN
    		response.write "Il film e' presente nel carrello!"
    		ELSE
    		response.write "Il film e' stato aggiunto al carrello!"
    		session("IDFILM") = session("IDFILM") + "," + request.querystring("articoli")
    		END IF
    	END IF
    END IF

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Si, in fase di inserimento.
    Ok.

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    si ma ora pensoche con quel tipo di codice, posso eliminare solo l'ultimo valore uguale.

    esemipo, clicco:

    ID 1
    ID 2
    ID 3

    se passo ID 3, ok
    ma se passo ID 1?

    non lo vede e mi restituisce:

    ID 1
    ID 2
    ID 3
    ID 1

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Infatti la right nel controllo non serve.

    Roby

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Non riuscivo a risolvere, avevo intuito come usare l'instr, ho studiato la sintassi ma dopo ho usato un altro metodo: RegularExpression

    ecco come ho fatto:
    codice:
    IF request.querystring("articoli") <> "" THEN
    	'controllo della variabile session
    	IF session("IDFILM") = "" THEN
    	session("IDFILM") = request.querystring("articoli")
    	ELSE
    		contenuto = session("IDFILM")
    		Function QuantitaSegno(colonna, segno)
    			Dim objRegExpr
    			Set objRegExpr = New RegExp
    			objRegExpr.Pattern = segno
    			objRegExpr.IgnoreCase = TRUE
    			objRegExpr.Global = TRUE
    			Dim colMatches
    			Set colMatches = objRegExpr.Execute(colonna)
    			QuantitaSegno = colMatches.Count
    		End Function
    
    		strColonna = contenuto
    		strSegno = request.querystring("articoli")
    
    		response.write "Hai inserito l'articolo: " & strSegno & "
    "
    		
    		IF QuantitaSegno(strcolonna, strSegno) = 0 THEN
    		session("IDFILM") = session("IDFILM") + "," + strSegno
    		ELSE
    		response.write "Il film e' presente nel carrello!" & "
    "
    		END IF
    	
    	END IF
    END IF
    L'importante e' aver risolto. Grazie per l'aiuto, ciao

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.