Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]php koszyk internetowy
Forum PHP.pl > Forum > Przedszkole
plej
Cześć mam taki kod
  1. if((@$_POST['add_pr_v']) && (@$_POST['add_pr_v'] == "true")){
  2. $ilosc = intval($_POST['ile']);
  3. $id = intval($_POST['id']);
  4. function dodaj($item) {
  5. $_SESSION['koszyk'][] = $item;
  6. $t = @$_POST['t'];
  7. $id = intval($_POST['id']);
  8. ?>
  9. <script type="text/javascript">
  10. //<![CDATA[
  11. alert('Produkt został dodany do koszyka.')
  12. window.location ="produkty.php?a=v&i=<?php echo $id."&t=".$t; ?>";
  13. //]]>
  14. </script>
  15. <?php
  16. }
  17.  
  18. $item = array('id'=>$id, 'ilosc'=>$ilosc);
  19. dodaj($item);
  20. }


Bawie się z koszykiem internetowy. I wszystko działa ale jak już dodamy do koszyka dwa razy ten sam produkt to w koszyku wyświetla dwa razy ten sam produkt, a nie połaczone. Próbowałem już to zrobić męczyłem się ale coś mi nie idzie. Jak to zrobić? że jak dodamy jeszcze raz ten sam produkt to go w powyższym kodzie połączy w jeden produkt?

Jest to jeszcze wzór koszyka potem pod oop przerobie ale narazie musze ten problem rozwiązać. Coś mi nie idzie z tym niestety.

Z góry dzieki.
nospor
Nie
$_SESSION['koszyk'][] = $item;
a:
$_SESSION['koszyk'][$item['id']] = $item;

Dzieki temu kazda pozycja bedzie miala swoje wlasne ID i bez problemu bedziesz mogl sprawdzic czy pozycja juz jest czy nie i albo połączyc albo poprostu dodac
plej
Dzięki. Jak by coś dalej mi nie wychodzilo to napisze.

Udało się.
Daje kod może komuś się przyda lub i też ma problem z tym:

  1. if((@$_POST['add_pr_v']) && (@$_POST['add_pr_v'] == "true")){
  2. $ilosc = intval($_POST['ile']);
  3. $id = intval($_POST['id']);
  4. function dodaj($item) {
  5. $_SESSION['koszyk'][$item['id']] = $item;
  6. $t = @$_POST['t'];
  7. $id = intval($_POST['id']);
  8. ?>
  9. <script type="text/javascript">
  10. //<![CDATA[
  11. alert('Produkt został dodany do koszyka.')
  12. window.location ="produkty.php?a=v&i=<?php echo $id."&t=".$t; ?>";
  13. //]]>
  14. </script>
  15. <?php
  16. }
  17.  
  18. if(isset($_SESSION['koszyk'][$id])){
  19. $ile_jest = $_SESSION['koszyk'][$id]['ilosc'];
  20. $nowa_ilosc = $ile_jest + $ilosc;
  21. $_SESSION['koszyk'][$id]['ilosc'] = $nowa_ilosc;
  22. }else{
  23. $item = array('id'=>$id, 'ilosc'=>$ilosc);
  24. dodaj($item);
  25. }
  26. }


Wystarczy tylko przerobić na swoje i zabezpieczyć.

Pozdrawiam smile.gif
nospor
Sprawdzanie czy cos jest juz w koszyku i ewnetualne dodawania powinno byc w funkcji dodaj a nie przed

poza tym nie:
$ile_jest = $_SESSION['koszyk'][$id]['ilosc'];
$nowa_ilosc = $ile_jest + $ilosc;
$_SESSION['koszyk'][$id]['ilosc'] = $nowa_ilosc;

a poprostu
$_SESSION['koszyk'][$id]['ilosc'] += $ilosc;
plej
Ok poprawione ; p



  1. if((@$_POST['add_pr_v']) && (@$_POST['add_pr_v'] == "true")){
  2. $ilosc = intval($_POST['ile']);
  3. $id = intval($_POST['id']);
  4. function dodaj($item) {
  5. if(isset($_SESSION['koszyk'][$item['id']])){
  6. $_SESSION['koszyk'][$item['id']]['ilosc'] += $item['ilosc'];
  7. }else{
  8. $_SESSION['koszyk'][$item['id']] = $item;
  9. }
  10. $t = @$_POST['t'];
  11. $id = intval($_POST['id']);
  12. ?>
  13. <script type="text/javascript">
  14. //<![CDATA[
  15. alert('Produkt został dodany do koszyka.')
  16. window.location ="produkty.php?a=v&i=<?php echo $id."&t=".$t; ?>";
  17. //]]>
  18. </script>
  19. <?php
  20. }
  21. $item = array('id'=>$id, 'ilosc'=>$ilosc);
  22. dodaj($item);
  23. }
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.