Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Problem z Namespace (usuwanie)
Forum PHP.pl > Forum > PHP > Frameworki
grOm
Witam, piszę właśnie sklep i mam problem z koszykiem, a dokładniej z usuwaniem produktów
Dodawanie nowych produktów w miarę działa ale z usuwaniem coś nie potrafię sobie poradzić, nie zawsze usuwa wpisy w sesji, a do tego jak zostaje 1 wpis (czasem 2) nie da się wcale usunąć -_-

tablica zapisywana w sesji wyglada tak :
  1. <?php
  2. (
  3.    [1] => Array
  4.        (
  5.            [0] => 19
  6.            [1] => nowy
  7.            [2] => 123444
  8.            [3] => Oryx_Antelope_1.jpg
  9.        )
  10.  
  11.    [2] => Array
  12.        (
  13.            [0] => 18
  14.            [1] => dsfsdf
  15.            [2] => 213
  16.            [3] => d8ffc50bfa_2.jpeg
  17.        )
  18.  
  19. )
  20. ?>


a operacje na niej tak:

  1. <?php
  2. public function ile()
  3.    {
  4.        $koszyk = new Zend_Session_Namespace();
  5.        $i = 0;
  6.        if (isset($koszyk->kosz)) foreach ($koszyk->kosz as $cos) $i++;
  7.        return $i;
  8.    }
  9.    
  10.    public function add($prod_id,$name,$cena,$foto)
  11.        {
  12.        $koszyk = new Zend_Session_Namespace();
  13.        $ajdi = $this->ile() + 1;
  14.        $koszyk->kosz[$ajdi] = array($prod_id,$name,$cena, $foto);
  15.        }
  16.  
  17.    public function del($kosz_id)
  18.        {
  19.            $koszyk = new Zend_Session_Namespace();
  20.            unset($koszyk->kosz[$kosz_id]);
  21.            
  22.        }
  23.    
  24. }
  25.    function koszykAction()
  26.    {
  27.        $koszyk = new Koszyk;
  28.        $this->view->koszyk = $koszyk->pokazAll();
  29.        $this->view->suma = $koszyk->sumuj();
  30.        if ($this->_request->getParam('del',0))
  31.            {
  32.                $koszyk->del($this->_request->getParam('del',0));
  33.            }
  34.    }
  35. ?>
Siner
Przy metodzie del sprawdzaj sobie jaka wartość dochodzi i jak wygląda koszyk po unset.
  1. <?php
  2. public function del($kosz_id)
  3.       {
  4.           Zend_Debug::dump($kosz_id);
  5.           $koszyk = new Zend_Session_Namespace();
  6.           unset($koszyk->kosz[$kosz_id]);
  7.           Zend_Debug::dump($koszyk->kosz);
  8.       }
  9. ?>

I tak poza tym trochę dziwnie masz to zaprojektowanie, pomyśl nad przypadkiem gdy ktoś będzie chciał zamówić kilka egzemplarzy danego produktu.
grOm
dzięki, podawałem złe nazwy kluczy przy dodawaniu i usuwaniu sleep.gif chyba się zaprzyjaznie z Zend_Debug::dump();
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.