Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Koszyk - problem ze zliczaniem produktow
Forum PHP.pl > Forum > Przedszkole
dolar
Witajcie ponownie. Mam problem ( pewnie blachy, ale niestety ustknelam :/). Wszystko mi dziala, lecz nie potrafie zrobic aby po wcisnieciu "dodaj do koszyka" zliczalo mi liczbe produktow w nim. Czy ktos moglby mi pomoc, lub ewentualnie naprowadzic na rozwiazanie? Oto moj kod:

  1.  
  2. $produkty = array(
  3. 'kategoria' => 'bluzki',
  4. 'nazwa' => 'Lewis',
  5. 'rozmiar' => 'xl',
  6. 'cena' => 20.50
  7. ),
  8. 'kategoria' => 'spodnie',
  9. 'nazwa' => 'Lee',
  10. 'rozmiar' => 31,
  11. 'cena' => 99.50
  12. ),
  13. 'kategoria' => 'bluzki',
  14. 'nazwa' => 'Modoo',
  15. 'rozmiar' => 'l',
  16. 'cena' => 29.90
  17. ),
  18. 'kategoria' => 'spodnie',
  19. 'nazwa' => 'Wrangler',
  20. 'rozmiar' => 28,
  21. 'cena' => 100.50
  22. ),
  23. 'kategoria' => 'bluzki',
  24. 'nazwa' => 'Cropp',
  25. 'rozmiar' => 'l/xl',
  26. 'cena' => 29.50
  27. ),
  28. 'kategoria' => 'spodnie',
  29. 'nazwa' => 'BigStar',
  30. 'rozmiar' => 30,
  31. 'cena' => 89.50
  32. )
  33. );
  34.  
  35. if (array_key_exists('wybrany_produkt', $_POST)){
  36. $idProduktu=$_POST['wybrany_produkt'];
  37. $_SESSION['koszyk'][] = $produkty[$idProduktu];
  38. echo "Dodano do koszyka ".$produkty[$idProduktu]['nazwa'];
  39.  
  40. }
  41.  



  1. <head>
  2. <meta charset="UTF-8">
  3.  
  4. #produkty {
  5. width: 100%;
  6. text-align: center;
  7.  
  8.  
  9. }
  10.  
  11. #produkty th {
  12. padding: 4px;
  13. background-color: #eee;
  14. }
  15.  
  16. #produkty td {
  17. padding: 4px;
  18. }
  19.  
  20. h1 {
  21. margin-top: 100px;
  22. text-align: center;
  23. }
  24.  
  25. #obrazek {
  26. width: 150px;
  27. height: 80px;
  28. position: absolute;
  29. top:0px;
  30. right:0px;
  31.  
  32. }
  33.  
  34. </style>
  35. </head>
  36. <body>
  37.  
  38. <div id="obrazek">
  39. <a href=""><img src=""="65px" width="120px"/></a>
  40. <p>
  41.  
  42. <?php
  43. TATAJ UTKNELAM! biggrin.gif
  44.  
  45. if (array_key_exists('wybrany_produkt', $_POST)) {
  46. $liczbaProduktow = 1;
  47. echo $liczbaProduktow;
  48. }
  49. ?>
  50.  
  51. </p>
  52. </div>
  53. <h1>Produkty</h1>
  54. <form method="post">
  55. <table id="produkty">
  56. <tr>
  57. <th>Kategoria</th>
  58. <th>Nazwa</th>
  59. <th>Rozmiar</th>
  60. <th>Cena</th>
  61. <th>Opcje</th>
  62. </tr>
  63. <?php
  64. foreach ($produkty as $key => $produkt) {
  65. echo "<tr>";
  66. echo "<td>" . $produkt['kategoria'] . "</td>";
  67. echo "<td>" . $produkt['nazwa'] . "</td>";
  68. echo "<td>" . $produkt['rozmiar'] . "</td>";
  69. echo "<td>" . $produkt['cena'] . "</td>";
  70. echo '<td><button type="submit" name="wybrany_produkt" value="'.$key.'">Dodaj do koszyka</button></td>';
  71. echo "</tr>";
  72. }
  73. ?>
  74. </table>
  75.  
  76. </form>
  77.  
  78.  
  79. </body>
  80. </html>
viking
Kod PHP powinien być wewnątrz <?php ?> i oczywiście musi być przetworzony przez serwer.
dolar
wlasnie wpadlam na pomysl czy mozna by tam wstawic :

  1.  
  2. $i=count($_SESSION['koszyk']);
  3. if ($i>0) {
  4. echo $i;
  5. }
  6.  


Ale nie wiem czy to nie jest za proste rozwiazanie...

Viking tak wiem, cos mi sie nie zapisalo, zaraz poprawie
Kishin
Cytat(dolar @ 7.12.2016, 11:11:40 ) *
wlasnie wpadlam na pomysl czy mozna by tam wstawic :

  1.  
  2. $i=count($_SESSION['koszyk']);
  3. if ($i>0) {
  4. echo $i;
  5. }
  6.  


Ale nie wiem czy to nie jest za proste rozwiazanie...

Viking tak wiem, cos mi sie nie zapisalo, zaraz poprawie


po co ten if? 0 też może byc w koszyku

dodatkowo jeżeli nic nie bedzie w tablicy wywali Ci notice.
dolar
Racja z tym if...
To jeszcze jedno pytanie:
Jak zaimplementowac taki kod z js w php?

setTimeout(function(){
document.getElementById('komunikat').style.display = 'none';
}, 20000);


Nie wiem nawet czy jest dobrze naspiany, chodzi mi o to ze po dodaniu produktu do koszyka, wyswietli sie napis :Dodano do koszyka", po czym zniknie po 20 sekundach.

  1.  
  2. if (array_key_exists('wybrany_produkt', $_POST)){
  3. $idProduktu=$_POST['wybrany_produkt'];
  4. $_SESSION['koszyk'][] = $produkty[$idProduktu];
  5. echo '<div id="komunikat">';
  6. echo "Dodano do koszyka ";
  7. echo '</div>';
  8.  
  9. }
  10.  


Kishin
Cytat(dolar @ 7.12.2016, 11:44:32 ) *
Racja z tym if...
To jeszcze jedno pytanie:
Jak zaimplementowac taki kod z js w php?

setTimeout(function(){
document.getElementById('komunikat').style.display = 'none';
}, 20000);


Nie wiem nawet czy jest dobrze naspiany, chodzi mi o to ze po dodaniu produktu do koszyka, wyswietli sie napis :Dodano do koszyka", po czym zniknie po 20 sekundach.

  1.  
  2. if (array_key_exists('wybrany_produkt', $_POST)){
  3. $idProduktu=$_POST['wybrany_produkt'];
  4. $_SESSION['koszyk'][] = $produkty[$idProduktu];
  5. echo '<div id="komunikat">';
  6. echo "Dodano do koszyka ";
  7. echo '</div>';
  8.  
  9. }
  10.  



wygląda ok, testowałaś?
dolar
Dziala dziala, tylko chcialam w tym kodzie dodac js, ale w js dopiero raczkuje i nie wiem jak ten kod zaimplementowac w php zeby dzialal.

  1. setTimeout(function(){
  2. document.getElementById('komunikat').style.display = 'none';
  3. }, 20000);


Dodanie do koszyka spowoduje pokazuje się napisu: "Dodano" i chcę żeby ten tekst znikł np. po 20 sekundach
Kishin
Cytat(dolar @ 7.12.2016, 11:56:33 ) *
Dziala dziala, tylko chcialam w tym kodzie dodac js, ale w js dopiero raczkuje i nie wiem jak ten kod zaimplementowac w php zeby dzialal.

  1. setTimeout(function(){
  2. document.getElementById('komunikat').style.display = 'none';
  3. }, 20000);


Dodanie do koszyka spowoduje pokazuje się napisu: "Dodano" i chcę żeby ten tekst znikł np. po 20 sekundach


za </body> wrzuc
  1. <script>
  2. setTimeout(function(){
  3. document.getElementById('komunikat').style.display = 'none';
  4. }, 20000);
  5. </script>
dolar
Wow dziekuje za pomoc smile.gif

A trapi mnie jeszcze nedna kwestia... czy daloby rade zrobic sumowanie i dodawanie do koszyka innym sposobem niz count?
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.