Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CodeIgniter] usuwanie produktu klasa cart
Forum PHP.pl > Forum > PHP > Frameworki
rutek1308
Mam problem z tym kodem

  1.  
  2. public function del_item()
  3. [indent]{
  4.  
  5. [indent]$this->session->unset_userdata($this->uri->segment(3));
  6.  
  7.  
  8. redirect('cart/');[/indent]
  9. }[/indent]
  10.  
  11.  


z segmentu jest pobierana wartosc rowid, tablica produktu którego chcę usunać, próbowalem sie dobrać do niej na różne sposoby i naprawdę już nie mam pomysłu
aniolekx
pokaz kawałek kodu w którym zapisujesz koszyk w sesji, czy sparwdzales co zwraca "var_dump($this->session);" ?
rutek1308
var_dump(sesji) wyswietla mi cos takiego

array(6) { ["session_id"]=> string(32) "1fce778964e67409ced643daa9542fb1" ["ip_address"]=> string(9) "127.0.0.1" ["user_agent"]=> string(109) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36" ["last_activity"]=> int(1415028136) ["user_data"]=> string(0) "" ["cart_contents"]=> array(3) { ["3d6cef782694c3ae6de46e04be484f01"]=> array(7) { ["rowid"]=> string(32) "3d6cef782694c3ae6de46e04be484f01" ["id"]=> string(1) "6" ["qty"]=> string(1) "1" ["price"]=> string(6) "100.00" ["name"]=> string(1) "c" ["options"]=> array(2) { ["producent"]=> string(1) "c" ["description"]=> string(1) "c" } ["subtotal"]=> float(100) } ["total_items"]=> int(1) ["cart_total"]=> float(100) } }


koszyk zapisuje sie za pomoca funkcji wbudowanej w klasie moj kog wyglada tak

public function add_item()
{
$where = array('id_products' => $this->uri->segment(3), );
$data = $this->site_m->get('products', $where, TRUE);

$item = array(
'id' => $data->id_products,
'qty' => '1',
'price' => $data->price,
'name' => $data->name_products,
'options' => array(
'producent' => $data->producent,
'description' => $data->description,),
);


$this->cart->insert($item);



redirect('cart/');
}
i wprawdzie tkwi w tym problem ze nie moge usunac z tablicy cart_content zadnej tablicy, a tablice cart_content bez problemu usuwa.
aniolekx
w zasadzie tutaj masz wszystko opisane: https://ellislab.com/codeigniter/user-guide...aries/cart.html

aby usunac produkt z koszyka musisz użyć metody "update" (zobacz rodzial Updating The Cart), każdy przedmiot w koszyku ma swój unikalny row_id.

If the quantity is set to zero, the item will be removed from the cart.

W rozdziale Displaying the Cart jest nawet odpowiedni przykład
rutek1308
dzieki wielkie:)

jednak nawet jak zrobie funkcja $this->cart->update(); nadal nie dziala i nie chce zmienic w sesji nic sesja jest caly czas jest taka sama po wyswietleniu przez var_dump();

to jest funkcja ktorej uzywalem do zmiany rowid
  1. $rowid = $this->uri->segment(3);
  2.  
  3. $data = $this->cart->contents($rowid);
  4.  
  5. $data[$rowid] = array(
  6. 'rowid' => 0,
  7. );
  8.  
  9. $this->cart->update($data);

nawet jak robie tak jak w przykladzie bez okreslenia $rowid nadal nie dziala,
aniolekx
zerujesz row_id a masz zerowac qty (czyli ilosc produktu)
rutek1308
sory za spamowanie zle przeczytalem myslalem ze mam z zerowac id i sie mulilem przez tyle czasu dzieki wielkie jeszcze raz za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.