Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] koszyk
Forum PHP.pl > Forum > PHP
dachu
cześć
zrobiłem koszyk,,, ale mam problem z wyświetleniem zawartości w poszczególnych liniach. Prosze o pomoc.

  1. <?php
  2.  
  3. if (isset($_POST["add_to_cart"]))
  4. {
  5.  
  6. if (!isset($_SESSION["kosz"]))
  7. {
  8. $_SESSION["kosz"] = array();
  9. }
  10.  
  11. $idp = $_POST["id_prod"];
  12. $ile = $_POST["ile"];
  13. $cena = $_POST["cena"];
  14. $ilosc = $_POST["ilosc"];
  15.  
  16. for ($i=0; $i < $ile; $i++)
  17. {
  18. $wartosc[$i] = $cena[$i]*$ilosc[$i];
  19. $koszyk[] = array('il' => $ilosc[$i],'cena_d' => $cena[$i],'wart' => $wartosc[$i]);
  20. }
  21.  
  22. $_SESSION["kosz"] = array_merge_recursive($_SESSION["kosz"], $koszyk); // dodanie kolejnych towarów + zapis do sesji
  23. }
  24.  
  25.  
  26. ********************************************** tu nie wiem za bardzo jak to rozwiązać
  27.  
  28. /* w sesji jest coś w tym stylu (tak obrazowo)
  29. Array (
  30. [0] => Array ( [il] => 2 [cena_d] => 12 [wart] => 24)
  31. [1] => Array ( [il] => 1 [cena_d] => 17 [wart] => 17)
  32. [2] => Array ( [il] => 4 [cena_d] => 6 [wart] => 24)
  33. itd...
  34.  )
  35. */
  36.  
  37. $zawartosc_koszyka = $_SESSION["kosz"];
  38.  
  39. foreach ( $zawartosc_koszyka as $Nr => $wart )
  40. {
  41. echo $Nr.' :: ';
  42.  
  43. for ( $i = 0; $i < count($wart); $i++ )
  44. {
  45. echo $wart[$i].'<br />';
  46. }
  47.  
  48. }
  49.  
  50. **********************************************
  51.  
  52. ?>
szok
Czegoś tu nie rozumiem.

Po co ci druga petla for w foreach, skoro przy dodawaniu do koszyka obliczasz koszt całości produktu?

Przeciez wystarczy coś takiego:
Kod
<?php
foreach($koszyk as $item)
{
echo 'Ilość: ' . $item['il'] . ' - Cena: ' . $item['cena_d'] . ' - Wartość ' . $item['wart'] . '<br />';
}
?>

I masz po kolei.
dachu
to jest tylko dla testu, pola które podałem w tablicy również smile.gif
Chodzi o to, że jest to tablica w tablicy ... dlatego nie mogłem sobie poradzić... Sprawdze to co napisałeś... ale...

a mam jeszcze pytanie, w jaki sposób usunąć dany produkt z koszyka.

Próbuj tak, ale coś nie wychodzi, mam tą samą zawartość :

  1. if ($_GET["remove"]!='') // po kliknieciu usuń - zmienna remove przechowuje klucz danego elementu tablicy
  2. {
  3.  
  4. $element = $_GET["remove"];
  5. $koszyk_z = $_SESSION["kosz"];
  6.  
  7. foreach($_SESSION["kosz"] as $klucz_r => $item3)
  8. {
  9. $item3[$element]=0;
  10. }
  11.  
  12. }


już mam,,, dla tych którzy by potrzebowali wklejam :

  1. <?php
  2. if ($_GET["remove"]!='')
  3. {
  4.  
  5. $_GET['remove'] = isset($_GET['remove']) ? (int)$_GET['remove'] : -1;
  6.  
  7. if (isset($_SESSION['kosz'][$_GET['remove']]))
  8. {
  9. unset($_SESSION['kosz'][$_GET['remove']]);
  10. }
  11.  
  12. }
  13. ?>
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.