2012-08-27 12 views
6

Provare a rimuovere un ID utente da un elenco specificato. Non riesco a romperlo ... Errori sulla rimozione a ListDeleteValue - qualcosa che mi manca. Su CF8.ListDeleteValue - Rimuovi parte dell'elenco

<cfset curlist = "#userssigned#"> - say userx:usery:userz 
<cfset ud = "#session.user_id#"> - say userz 

<cfoutput> 
#curlist# 
<br> 
<br> 
#ud# 
<br> 

<cfset newlist = ListDeleteValue(curlist, "#ud#", ":") /> 

#newlist# - should delete userz? end up as userx:usery 
</cfoutput> 
+0

Non esiste una funzione di [ListDeleteValue] (http://cfdocs.org/listdeletevalue) –

+0

spiacenti era da qualche Nadel note - ma è stato dichiarato in funzione - il mio male .. Ho visto solo il listdeletevalue –

risposta

10

è necessario utilizzare ListDeleteAt() e anche bisogno di trovare la posizione della voce nell'elenco utilizzando ListFind() Questo codice funziona sotto

Nota: Non è necessario utilizzare "##" quando sei impostare una variabile ad un'altra variabile

<cfset userssigned = 'userx:usery:userz' /> 
<cfset session.user_id = 'userz' /> 

<cfset curlist = userssigned /> 
<cfset ud = session.user_id /> 

<cfoutput> 
#curlist#<br><br> 
#ud#<br> 
<cfset newlist = ListDeleteAt(curlist, ListFind(userssigned,ud,":"), ":") /> 
#newlist# - should delete userz? end up as userx:usery 
</cfoutput> 
+0

Exc thx funziona - Ho cambiato i tag appropriati dell'hash CF # –

+1

Vedi avvertimento @ Risposta di JamesPrivett – jinglesthula

1

I Just sono imbattuto in questo e credo che la soluzione fornita può errore se listFind() non produce un risultato. Si può considerare il seguente

<cfset listPos = ListFind(userssigned,ud,":")> 
<cfif listPos> 
    <cfset newlist = ListDeleteAt(curlist, listPos , ":") /> 
</cfif>