Проблема в том, что вы удаляете в позиции счетчика, а не в поле формы, которое передается. Попробуйте вместо этого:
<cfset temp = arrayDeleteAt(session.shoppingcart, ListGetAt(FORM.leadID, i) />
ОБНОВЛЕНИЕ: Чтобы обойти проблему, упомянутую Тайлером, вы можете преобразовать свой список индексов из FORM.leadID
в массив, используя ListToArray
, а затем ArraySort
, чтобы получить их в порядке, необходимом для проверки правильности удалений. .
Хотя мой ответ действительно решает вашу непосредственную проблему, вам, безусловно, будет лучше последовать совету Тайлера и использовать ключ для каждого элемента в корзине, чтобы убедиться, что вы управляете тем, который на самом деле вы считаете нужным :)