![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.03.2003 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem z koszykiem do mojej strony. Próbuję zrobić taki koszyk aby po przesłaniu mu linkiem 4 danych dodawał je do koszyka a później je wyświetlał. Mam taki koszyk który po przesłaniu mu akcji i wartości np. "pid"=6 (product_id) i akcja "do"=Add (dodaj do koszyka), Dodaje określony produkt do koszyka. Link wygląda tak: .....cart.php?pid=6&do=Add Ten skrypt działa świetnie i po przekazaniu mu produktu id wyszukuje go w bazie i wyświetla pozostałe inf na temat tego produktu np. cena, nr_katalogowy, opis. Ponieważ bedę kożystał z bazy danych oraz z plików tekstowych z cennikami próbowałem zrobić coś takiego : W linku przekazywane są dane o id_produktu, nazwie, cenie, nr_katalogowym .....cart.php?pid=6&do=Add&nazwa=akumulator&nr_katalogowy=987654321&cena=98576 ale nie chce mi to działać, coś się dodaje do koszyka ale nie widać cen, nazwy, nr_kat .... Czy ktoś mógłby rzucić na to okiem i napisać jak to przerobić żeby było dobrze. Z góry dzięki za jakąkolwie pomoc. Ja spędziłem nad tym już całą niedzielę i nic konkretnego nie jestem w stanie wymyślić. Oto skrypty które dodają przedmioty do koszyka na podstawie bazy danych PLIK cart.php Kod <?php
require_once ("ShoppingCart.class"); // Dołączenie klasy. session_start(); // Rozpoczęcie sesji. if (isset ($HTTP_SESSION_VARS['cart'])) { // Jeżeli już rozpoczęto sesję(obiekt istnieje)... $cart = $HTTP_SESSION_VARS['cart']; } else { $cart = new ShoppingCart(); } switch ($HTTP_GET_VARS['do']) { case "Add": $cart->AddItem ($HTTP_GET_VARS[pid]); $cart->DisplayCart(); break; case "Drop": $cart->DropItem ($HTTP_GET_VARS[pid]); $cart->DisplayCart(); break; case "Change": foreach ($HTTP_POST_VARS[pid] as $key => $value) { $cart->ChangeQuantity ($key, $value); } $cart->DisplayCart(); break; case "Display": $cart->DisplayCart(); break; default: $cart->DisplayCart(); break; // To samo co display. } session_register ('cart'); ?> PLIK ShoppingCart.class Kod <?php
class ShoppingCart { var $items = array(); // jedyne pole (zmienna) wymagana przez ta klase jest tablica items // Funkcja służąca do dodawania towaru do koszyka. Jezeli taki towar juz sie znajduje w koszyku to zwiekszamy o 1 function AddItem ($item) { if ($this->items[$item]) { $this->items[$item] = $this->items[$item] + 1; } else { $this->items[$item] = 1; } } // Funkcja służąca do usuwania towaru z koszyka. Ustawiamy ilosc wybranej pozycji na 0 function DropItem ($item) { $this->items[$item] = 0; } // Funkcja służąca do modyfikacji ilości. 2 argumenty jak 0 to usuwa produkt a jak liczba to podmienia wartosc function ChangeQuantity ($item, $quantity) { if ($quantity == 0) { $this->DropItem($item); } else { $this->items[$item] = $quantity; } } // Function wyświetlająca zawartość koszyka. function DisplayCart () { global $db_connection; // Wyświetlenie tabeli i początek formularza. echo '<form action="cart.php?do=Change" method="post"> <table> <tr> <td align="center"><b>Nazwa towaru</b></td> <td align="center"><b>Rozmiar towaru</b></td> <td align="center"><b>Odmiana towaru</b></td> <td align="center"><b>Cena jednostkowa</b></td> <td align="center"><b>Ilość</b></td> <td align="center"><b>Kwota razem</b></td> <td align="center"><b>Usuń</b></td> </tr> '; // Pętla dla wszystkich pozycji koszyka. foreach ($this->items as $key => $value) { $was_one = FALSE; // sztuczna zmienna if ($value != 0) { $was_one = TRUE; $query = "select towary.towar_id, towary_nazwa.nazwa_towaru AS NAZWA, towary_rozmiar.rozmiar_towaru AS ROZMIAR, towary_odmiana.odmiana_towaru AS ODMIANA, towary.cena, towary.dostepny from towary, towary_nazwa, towary_rozmiar, towary_odmiana where towary.nazwa_id = towary_nazwa.towary_nazwa_id and towary.rozmiar_id = towary_rozmiar.towary_rozmiar_id and towary.odmiana_id = towary_odmiana.towary_odmiana_id and towary.towar_id = '$key'"; $db_query = mysql_query ($query, $db_connection) or die (mysql_error()); $row = mysql_fetch_array ($db_query); $sub_total = sprintf ("%01.2f", ($value * $row[cena])); $total += $sub_total; echo " <tr> <td align="center">$row[NAZWA]</td> <td align="center">$row[ROZMIAR]</td> <td align="center">$row[ODMIANA]</td> <td align="center">$row[cena] PLN</td> <td align="center"><input type="text" name="pid[$key]" size="2" maxsize="3" value="$value"></td> <td align="center">$sub_total PLN</td> <td align="center"><a href="cart.php?pid=$key&do=Drop">Usuń</a></td> </tr>n"; } } // Uzupełnienie tabeli i formularza. echo '<tr> <td align="right" colspan="5">Razem</td> <td align="center">'; printf ("%01.2f", $total); echo ' PLN </td> <td align="center"> </td> </tr> <input type="hidden" name="do" value="Change"> </table> Aby uaktualnić ilości, należy zmienić wartości powyżej i kliknąć w tym miejscu <input type="submit" name="submit" value="Zmień ilości"> <input type="hidden" name="do" value="Change"> </form>'; if (!$was_one) { echo '<br /><font color="#CC0000"><big>Twój koszyk jest pusty.</big></font>'; } } // Koniec funkcji DisplayCart(). } // Koniec klasy. ?> |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:45 |