Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]sesja a tablica
matyskiewicz
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


Witam,
Obecnie piszę koszyk do sklepu internetowego:
wchodzę w kategorię produktu i mam formularz:
  1. <form action="index.php?module=add" method="post">
  2. <input type="hidden" name="id" value="{$item.id}" /> //pobieram id produktu
  3. <input type="text" name="ilosc" value="1" /> //ilosc domyslna to 1 szt
  4. <input type="submit" value="dodaj do koszyka" />
  5. </form>

przesyłam to do funkcji która ma za zadanie dopisać do sesji tablice 2 wymiarową
  1. <?php
  2. $_SESSION['cart']= $cartArray[$zamId][$zamIlosc];
  3. ?>

Z pewnością popełniam gdzieś błąd, ponieważ albo nie zapisuje tablicy do sesji albo nie umiem jej wyświetlić (użyłem do tego funkcji print_r())

Może również przedstawię dalszą cześć mojego rozumowania:
1. zapisuje do tablicy wartość id i ilości, to przekazuje do sesji.
2. tablice dowolnie powiększam o kolejne towary
3. wchodząc do zawartości koszyka pobieram dane z tablicy i porównuję danymi z bazy danych

zastanawiam się również nad wprowadzeniem licznika, w celu późniejszej modyfikacji zamówienia (np zmiany ilości sztuk).

Proszę o wsparcie merytoryczne, oraz ewentualną pomoc w kodzie.
Pozdrawiam


--------------------
eclipse :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sticker
post
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


a nie lepiej mieć coś w tablicy a nie pustą wartośc pod zestawem kluczy ?
  1. <?php
  2. $_SESSION['cart']= $cartArray[$zamId]= $zamIlosc;
  3. ?>


--------------------
Go to the top of the page
+Quote Post
matyskiewicz
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


Głupi błąd... wstydnis.gif

Już wypełniam klucze lecz teraz inny problem się wkradł:
1. w tej chwili zamiast dodawać do tablicy aktualizuje ostatni wpis :/
  1. <?php
  2. function addToCart($zamId, $zamIlosc)
  3. {
  4.  
  5.    $_SESSION['cart'] = Array('item' => $item, 'id' => $zamId, 'ilosc' => $zamIlosc);
  6.    echo $_SESSION['cart']['item'];    
  7. }
  8. ?>

2. inkrementacja licznika:
  1. <?php
  2. function addToCart($zamId, $zamIlosc)
  3. {
  4.    $item = isset($_SESSION['cart']['item']) ? $_SESSION['cart']['item'] : null;
  5.    $item++;
  6.    
  7.    $_SESSION['cart'] = Array('item' => $item, 'id' => $zamId, 'ilosc' => $zamIlosc);
  8.    echo $_SESSION['cart']['item'];    
  9. }
  10. ?>
Gdzie popełniam błąd?


--------------------
eclipse :)
Go to the top of the page
+Quote Post
sticker
post
Post #4





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


kod:
  1. <?php
  2. $_SESSION['cart'] = Array('item' => $item, 'id' => $zamId, 'ilosc' => $zamIlosc);
  3. ?>

jest rozumiany jako:
Weź tablice SESSION i znajdź w niej element który odpowiada kluczowi 'cart'. Wynikiem jest tablica:
Array('item' => $item, 'id' => $zamId, 'ilosc' => $zamIlosc);
Następnie wpisujesz w miejsce starej tablicy nową Array('item' => ++$item, 'id' => $zamId, 'ilosc' => $zamIlosc);


Żeby nie napisywac musisz zapisać je do innej zmiennej. Może przeorganizuj kod wg następującego wzoru:
  1. <?php
  2. $_SESSION['cart'][$item] = Array('id' => $zamId, 'ilosc' => $zamIlosc);
  3. ?>


W takim przypadku nie nadpiszesz sobie zmiennych


--------------------
Go to the top of the page
+Quote Post
sidkoz
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.01.2009

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


Widząc podobny temat mam pytanie ja w przeciwieństwie do kolegi chciałem sobie zastąpić taką całą tablice w sesji inną tablicą
Kod
if(isset($_POST['remember'])) {//jesli opcja jest zaznaczona
    $_SESSION['dane'] = $cookies;//ustawia wartosci
    $_SESSION['ilewierszy'] = $w_M2;//ustawia wiersze
    $_SESSION['ilekolumn'] = $k_M2;//ustawia kolumny
    }

za każdym razem gdy wcisnę przycisk zapamiętaj
Go to the top of the page
+Quote Post
singles
post
Post #6





Grupa: Zarejestrowani
Postów: 121
Pomógł: 26
Dołączył: 2.07.2007

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


Jeśli Cię dobrze zrozumiałem, chcesz ustawić całą tablicę sesji na nowo z tamtymi wartościami. To będzie tak.
  1. <?php
  2. $_SESSION = array('dane' => $cookies, 'ilewierszy' => $w_M2, 'ilekolumn' => $k_M2);
  3. ?>


Ten post edytował singles 16.06.2009, 07:34:02


--------------------
Works for me => u mnie działa - blog o (o)programowaniu i nie tylko
meet.php - darmowe meetupy związane z PHP
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 01:31