2012-08-27 13 views
6

Versuch, eine Benutzer-ID aus einer gegebenen Liste zu entfernen. Kann es anscheinend nicht knacken ... Fehler beim Entfernen am ListDeleteValue - etwas fehlt mir. Auf CF8.ListDeleteValue - Teil der Liste entfernen

<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

folgendes beachten Es gibt keine solche Funktion wie [ListDeleteValue] (http://cfdocs.org/listdeletevalue) –

+0

leider von einigen Nadel war bemerkt - aber es wurde als Funktion deklariert - mein schlecht .. Nur sah den listdeletevalue –

Antwort

10

Sie müssen ListDeleteAt() verwenden und müssen auch die Position des Elements in der Liste finden mit ListFind() Dieser Code funktioniert unter

Hinweis: Sie müssen nicht "##" verwenden, wenn Sie eine Variable auf eine andere Variable Einstellung

<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 funktioniert - ich änderte zu passenden CF Hash # Tags –

+1

Siehe Einschränkung in @ JamesPrivett Antwort – jinglesthula

1

ich kam in diesem und ich glaube, die Lösung zur Verfügung gestellt Fehler kann, wenn Listfind() erzeugt keine Ergebnisse. Sie können die

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