![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 20.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam koszyk na zakupy. Dziala dobrze jednak chcialbym aby uzytkownik mial mozliwosc wyboru atrybutu przedmiotu ktory kupuje (np. kolor zielony). Formularz i wszystko inne przygotowane, tylko nie moge sobie poradzic z tym aby przy wyswietlaniu koszyka 1 produkt ale z roznymi atrybutami byly wyswietlane oddzielnie i traktowane jako rozne produkty. Obecnie jesli produkt zostaje poraz kolejny dodany do koszyka to zostaje zwiekszona ilosc zakupionych produktow o tym id o 1. oto kod:
Kod @ $nowy = $_GET['nowy']; $stat = $_POST['stat']; //w tej zmiennej jest zapisany atrybut dodawanego produktu if($nowy) { // wybrany nowy produkt if(!isset($_SESSION['koszyk'])) { $_SESSION['koszyk'] = array(); $_SESSION['produkty'] = 0; $_SESSION['calkowita_wartosc'] ='0.00'; } if(isset($_SESSION['koszyk'][$nowy])) $_SESSION['koszyk'][$nowy]++; else $_SESSION['koszyk'][$nowy] = 1; $_SESSION['calkowita_wartosc'] = oblicz_wartosc($_SESSION['koszyk']); $_SESSION['produkty'] = oblicz_produkty($_SESSION['koszyk']); $_SESSION['calkowita_wartosc_netto'] = oblicz_wartosc_netto($_SESSION['koszyk']); } if(isset($_POST['zapisz'])) { foreach ($_SESSION['koszyk'] as $id => $ilosc) { if($_POST[$id]=='0') unset($_SESSION['koszyk'][$id]); else $_SESSION['koszyk'][$id] = $_POST[$id]; } $_SESSION['calkowita_wartosc'] = oblicz_wartosc($_SESSION['koszyk']); $_SESSION['produkty'] = oblicz_produkty($_SESSION['koszyk']); } if($_SESSION['koszyk']&&array_count_values($_SESSION['koszyk'])) wyswietl_koszyk($_SESSION['koszyk']); else { echo '<p>Koszyk jest pusty</p>'; echo '<hr />'; } $cel = 'indeks.php'; // jeżeli do koszyka został właśnie dodany przedmiot // kontynuacja zakupów w danej kategorii if($nowy) { $dane = pobierz_dane_ksiazki($nowy); if($dane['idkat']) $cel = 'pokaz_kat.php?idkat='.$dane['idkat']; } ?> <a href="http://www.<?php echo "$login"; ?>.creoharta.pl">Kontynuacja zakupów</a> <a href="http://www.<?php echo "$login"; ?>.creoharta.pl/kasa.php">Zrealizuj zamówienie</a> przydać może się też kod funkcji wyswietl_koszyk Kod function wyswietl_koszyk($koszyk, $zmiana = true, $obrazki = 0)
{ // wyświetlenie zawartości koszyka // opcjonalnie pozwala na zmiany (true lub false) // opcjonalnie dołącza obrazki(1 — tak, 0 — nie) echo '<center> <table border = 0 width = 95% cellspacing = 0> <form action = pokaz_kosz.php method = post> <tr><th colspan = '. (1+$obrazki) .' bgcolor="#cccccc" align="left">Produkt</th> <th bgcolor="#cccccc" align="left">Cena</th><th bgcolor="#cccccc" align="left">Ilość</th> <th bgcolor="#cccccc" align="left">Netto</th> <th bgcolor="#cccccc" align="left">Brutto</th></tr>'; // wyświetlanie każdego produktu jako wiersza tabeli foreach ($koszyk as $id => $ilosc) { $ksiazka = pobierz_dane_ksiazki($id); echo '<tr>'; if($obrazki ==true) { echo '<td align = left>'; if (file_exists("obrazki/$id.jpg")) { $wielkosc = GetImageSize('obrazki/'.$id.'.jpg'); if($wielkosc[0]>0 && $wielkosc[1]>0) { echo '<img src="obrazki/'.$id.'.jpg" border="0" '; echo 'width = '. $wielkosc[0]/3 .' height = ' .$wielkosc[1]/3 . ' />'; } } else echo ' '; echo '</td>'; } $stat = atrybut; echo '<td align = left>'; echo '<a href = "produkt-'.$id.'.html">'.$ksiazka['nazwa'].'</a> <i>'.$stat.'</i>'; echo '</td><td align = left>PLN '.number_format($ksiazka['netto'], 2); echo '</td><td align = left>'; // jeżeli zmiany są dozwolone, ilości znajdują się w polach tekstowych if ($zmiana == true) echo "<input type = 'text' name = \"$id\" value = \"$ilosc\" size = \"3\">"; else echo $ilosc; echo '</td><td align = "left">PLN '.number_format($ksiazka['netto']*$ilosc,2)."</td>"; echo '</td><td align = "left"><b>PLN '.number_format($ksiazka['cena']*$ilosc,2)."</td></tr>\n"; } // wyświetl wiersz sumy $wartnetto = number_format(oblicz_wartosc_netto($_SESSION['koszyk']), 2); echo "<tr> <th colspan = ". (2+$obrazki) ." bgcolor=\"#cccccc\" align=\"left\"> </td> <th align = \"left\" bgcolor=\"#cccccc\"> ".$_SESSION['produkty']." </th><td align = \"left\" bgcolor=\"#cccccc\">PLN $wartnetto</td> <th align = \"left\" bgcolor=\"#cccccc\" align=\"left\"> PLN ".number_format($_SESSION['calkowita_wartosc'], 2). '</th> </tr>'; // wyświetl przycisk zapisujący zmiany if($zmiana == true) { echo '<tr> <td colspan = '. (2+$obrazki) .' align=\"left\"> </td> <td align = left> <input type = hidden name = zapisz value = true /> <input type = image src = "obrazki/zapisz-zmiany.gif" border = "0" alt = "Zapisz zmiany" heigth = 50 width = 135> </td> <td> </td> </tr>'; } echo '</form></table></center>'; } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 13:47 |