2012-08-27 16 views
6

Belirli bir listeden bir kullanıcı bilgisini kaldırmaya çalışıyorum. Bunu çatlamak için görünmüyor ... ListDeleteValue de kaldırma hataları - Ben eksik bir şey. CF8'de.ListDeleteValue - Listenin Bir Parçası Kaldır

<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

aşağıdaki [ListDeleteValue] Üzgünüz (http://cfdocs.org/listdeletevalue) –

+0

bazı Nadel oldu notları diye bir işlevi yoktur düşünebilir benim kötü .. Sadece listdeletevalent –

cevap

10

Sen ListDeleteAt() kullanmak gerekir ve ayrıca bu kod aşağıda

Not işleri ListFind() kullanarak listedeki öğenin konumunu bulmak gerekir: Sen olduğun zaman "##" kullanmak gerekmez başka bir değişkene

<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 çalışır gördüm - Ben uygun CF hash # etiketleri olarak değiştirildi –

+1

@ JamesPrivett'ın cevabını izleyin – jinglesthula

1

için bir değişken ayarlama Ben Sadece bu rastladım ve ben listFind() bir sonuç vermezse sağlanan çözüm hata olabileceğini düşünüyorum. ama fonksiyon olarak ilan edilmiştir - - Sen

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