Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Problem z Namespace (usuwanie)
grOm
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 4
Dołączył: 6.10.2005

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował grOm 12.04.2009, 19:46:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Siner
post
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 6
Dołączył: 2.01.2004

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Siner 12.04.2009, 23:24:52
Go to the top of the page
+Quote Post
grOm
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 4
Dołączył: 6.10.2005

Ostrzeżenie: (0%)
-----


dzięki, podawałem złe nazwy kluczy przy dodawaniu i usuwaniu (IMG:http://forum.php.pl/style_emoticons/default/sleep.gif) chyba się zaprzyjaznie z Zend_Debug::dump();
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 00:09