Как удалить элемент, который хранится в сеансе? - PullRequest
0 голосов
/ 09 октября 2018

Я использую массив структур в ColdFusion.Вот код, который я пробовал.Может ли кто-нибудь помочь мне исправить мой код?

<cfif isDefined("remove")> //button in the cart page to remove a product
    <cflock scope="session" type="readonly" timeout="0200">
       <cfparam name="Session.cart">
       <cfloop query="#qProductSelected#"> //this is the query for getting productid from url
          <cfset sItem = structNew()> //this is my structure inside an array
          <cfset sItem.Image= Application.imageUrl&qProductSelected.ProductImage> //for getting image 
          <cfset sItem.ProductId =#ProductId#> //getting productid
          <cfset sItem.ProductImage = #Image#> //getting image
          <cfset sItem.ProductName = #ProductName#> //getting product name
          <cfset sItem.ProductDescription =#ProductDescription#> //getting productdescription
          <cfset sItem.quantity = form.qty> //storing quantity from form into the session
          <cfset structClear(sItem)> //finally i use structclear to clear the structure
        </cfloop>
   </cflock>
   <cflocation url="cart.cfm"> //redirecting to cart page itself
</cfif>

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Так как вы используете корзину.Я предполагаю, что вы храните продукты в виде массива структур с подробной информацией о продуктах, хранящихся в структуре.Если вы хотите удалить товар из корзины, код будет выглядеть примерно так

<cfset ArrayDeleteAt(session.arrCart,form.productsequenceincart) />

Так, например, если кто-то нажмет кнопку удаления 3-го товара, приведенный выше код сделает это -

<cfset ArrayDeleteAt(session.arrCart,3) />

Это удалит третий продукт из массива корзины.

Нам не нужно перебирать товар.

0 голосов
/ 09 октября 2018

Если вы пытаетесь удалить ключ 'cart' из сеанса, вы можете сделать это:

<cfset StructDelete(session,'cart')>

Однако вы находитесь в блокировке только для чтения, поэтому вам нужно изменить ее, чтобы она былаисключительная блокировка или неиспользующая блокировка ... зависит от ситуации относительно того, что там имеет смысл.

StructDelete Docs

...