Nope, on 2nd thought, Chat was right. If your array index was messed up, then the error would have occurred sooner while rendering the form.
I bet the error happens only if item 3 is selected. If you do 1 and 2 then you'll get the original number 2 remaining in the array. On Tue, Jan 12, 2010 at 4:51 PM, Qing Xia <txiasum...@gmail.com> wrote: > You are looping over the array sequentially from 1 but are you sure your > array key values are sequential from 1 as well? > > Your loop goes 1, 2, 3, which means it will expect to find > session.shoppingCart[1].itemid, session.shoppingCart[2].itemid and > session.shoppingCart[3].itemid. But are you sure those are indeed the key > values in the session array? If your array key values go 1,3,4 then that > will definitely break things. > > On Tue, Jan 12, 2010 at 4:31 PM, Chad Gray <cg...@careyweb.com> wrote: > >> >> My best guess is if you remove one item it changes the structure of the >> array and when it goes to remove the next one it cannot be found? >> >> Use CFDump to display the array as you are looping over it to help debug. >> This way you can see the way the array is changing as you are removing >> items. >> >> >> >> > -----Original Message----- >> > From: jrmuniz [mailto:jrmu...@sfsailing.com] >> > Sent: Tuesday, January 12, 2010 4:16 PM >> > To: cf-talk >> > Subject: Problem deleting structure in an array >> > >> > >> > Hello: >> > >> > Sorry, I forgot the subject in my last post. >> > >> > I'm having an issue deleting a form structure that is in a shopping cart >> > array. >> > I'm sure it's something simple I'm doing wrong, but it's driving me >> crazy. >> > >> > I have a checkbox to select which items to delete. >> > If only one item is selected there is no error and it works fine. >> > If more than one item is selected then the error is triggered. >> > Strangely, if I resubmit the form after the error it works OK. >> > >> > If I select two items to delete the error is: >> > The error message is " Element at position [3] doesn't >> exist in >> > array" >> > >> > Here is the form code: >> > <cfloop from="1" to="#arrayLen(session.shoppingcart)#" index="i"> >> > <tr> >> > <td> >> > <cfinput type="checkbox" value="#i#" name="itemid#i#"> >> > </td> >> > <td> >> > <cfinput type="text" name="quantity#i#" >> > value="#session.shoppingcart[i].quantity#" size="3"> >> > </td> >> > <td> >> > <cfinput type="text" name="catalogno#i#" >> > value="#HTMLEditFormat(session.shoppingcart[i].catalog)#" size="10"> >> > </td> >> > <td> >> > <cfinput type="text" name="description#i#" >> > value="#HTMLEditFormat(session.shoppingcart[i].description)#" >> > size="40"></td> >> > <td> >> > <cfinput type="text" name="price#i#" >> > value="#session.shoppingcart[i].price#" size="3"> >> > </td> >> > </tr> >> > </cfloop> >> > >> > Here is the cfc code: >> > <cfloop from="1" to="#arrayLen(session.shoppingcart)#" index="i"> >> > >> > <cfif StructKeyExists(rc,"itemid" & i)> >> > <cfset private.temp = arrayDeleteAt(session.shoppingcart,i)> >> > </cfif> >> > </cfloop> >> > >> > Any help is greatly appreciated. >> > >> > Regards, >> > Jaime >> > >> > >> > >> > >> > >> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:329603 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4