You probalby want something like this :
<cfoutput>
<cfloop index="itemNum" from="#Len(session.cart)#" to="1" step="-1">
<cfif ListFind(deleteList, itemArray[itemNum]) NEQ 0>
#ArrayDeleteAt(session.cart, itemNum)#
</cfif>
</cfloop>
#ArrayResize(session.cart, 1)#
</cfoutput>
Hope this helps.
-eric
> > <cfoutput>#ListSort(form.remove, "numeric", "desc")#</cfoutput>
> >
> > <cfloop index="i" list="#form.remove#">
> >
> > <cfoutput>
> > #ArrayDeleteAt(session.cart, i)#
> > #ArrayResize(session.cart, 1)#
> > </cfoutput>
> >
> > </cfloop>
> >
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: "CF-Talk" <[EMAIL PROTECTED]>
Sent: Sunday, September 30, 2001 5:25 PM
Subject: RE: Using CFLoop to delete from an Array
> That's what I was trying to do with the ListSort() function.
>
>
> H.
>
>
> -----Original Message-----
> From: Hanz Zarcovic [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, September 30, 2001 1:46 PM
> To: CF-Talk
> Subject: Re: Using CFLoop to delete from an Array
>
>
> I think what you are describing is a common problem.
> The problem is that when you start your loop the array is 7 elements long,
> you delete the first and the array is now only 6 long , but your loop
still
> thinks the array has 7 items.
>
> The trick is to loop in reverse, from the end of your array *down to* the
> first item. This way you are never trying to delete an item that dosen't
> exist.
>
> Hope this helps.
> -eric
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: "CF-Talk" <[EMAIL PROTECTED]>
> Sent: Sunday, September 30, 2001 4:08 PM
> Subject: Using CFLoop to delete from an Array
>
>
> > I have a form that will allow users to randomly select items to remove
> from
> > a form. All of the items in the form are an Array of Structures.
> >
> > By clicking "remove" the number of the array position is identified.
More
> > than remove checkbox can be checked. They can be checked in any order.
> >
> > Currently, if only one item is check and the submit button is clicked,
the
> > item is removed from the Array without a problem.
> >
> > The problem comes in when there is an attempt to remove two or more
items
> > simultaneously.
> >
> > An error such as this is displayed:
> >
> > "ArrayDeleteAt(Array, Position): Cannot delete element at position 7.
> > The array has only 6 elements.
> >
> > "The error occurred while evaluating the expression:
> > #ArrayDeleteAt(session.cart, i)#"
> >
> > I've tried various ways to get this to work, so as sorting the array
> (which
> > didn't work because the first element isn't a simple variable), and
trying
> > to get the cfloop to remove the bottom item before the top item. That
> isn't
> > working.
> >
> > Below is my current code, but my question is ... how can I loop through
> the
> > array and remove all of the items I want?
> >
> > Current Code:
> >
> >
> > <cfoutput>#ListSort(form.remove, "numeric", "desc")#</cfoutput>
> >
> > <cfloop index="i" list="#form.remove#">
> >
> > <cfoutput>
> > #ArrayDeleteAt(session.cart, i)#
> > #ArrayResize(session.cart, 1)#
> > </cfoutput>
> >
> > </cfloop>
> >
> >
> >
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Your ad could be here. Monies from ads go to support these lists and provide more
resources for the community. http://www.fusionauthority.com/ads.cfm
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists