2012-08-27 18 views
6

Intentando eliminar un ID de usuario de una lista dada. Parece que no se puede descifrar ... Errores en la eliminación en ListDeleteValue, algo que me falta. En CF8.ListDeleteValue - Eliminar parte de la lista

<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

no hay ninguna función como [ListDeleteValue] (http://cfdocs.org/listdeletevalue) –

+0

este momento era de algún Nadel observa - pero fue declarado como la función - mi mal .. . Solo vi el listdeletevalue –

Respuesta

10

Es necesario utilizar ListDeleteAt() y también tienen que encontrar la posición del elemento en la lista utilizando ListFind() Este código funciona por debajo de

Nota: No es necesario utilizar "##" cuando estás establecimiento de una variable a otra variable

<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 funciona - Cambié a etiquetas hash # de CF apropiadas –

+1

Mira la advertencia en la respuesta de @ JamesPrivett – jinglesthula

1

me encontré con esto y creo que la solución proporcionada puede error si listFind() no produce un resultado. Usted puede considerar el siguiente

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