Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmiana liczby produktow w koszyku
dolar
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

Ostrzeżenie: (0%)
-----


Niestety napotkalam problem. Podczas zmiany ilosci produktu w koszyku nie potrafie przyporzadkowac zmiany do danego produktu i zmieniaja mi sie wszystkie produkty na raz. Oto moj kod:

  1. <form method="post">
  2. <table id="produkty">
  3. <tr>
  4. <th>Id</th>
  5. <th>Kategoria</th>
  6. <th>Nazwa</th>
  7. <th>Rozmiar</th>
  8. <th>Cena</th>
  9. <th>Ilosc</th>
  10. <th>Usuń</th>
  11. <th>Suma</th>
  12. </tr>

  1.  
  2. if (array_key_exists('ilosc', $_POST)){
  3. $numer = (int)$_POST['ilosc'];
  4. } else {
  5. $numer=10;
  6. }
  7.  
  8. if (array_key_exists('minus', $_POST)){
  9. $numer--;
  10. }
  11. if (array_key_exists('plus', $_POST)){
  12. $numer++;
  13. }
  14.  
  15.  
  16.  
  17. foreach ($_SESSION['koszyk'] as $key => $produkt) {
  18. $key=$key+1;
  19. echo "<tr>";
  20. echo "<td>" . $key. "</td>";
  21. echo "<td>" . $produkt['kategoria'] . "</td>";
  22. echo "<td>" . $produkt['nazwa'] . "</td>";
  23. echo "<td>" . $produkt['rozmiar'] . "</td>";
  24. echo "<td>" . $produkt['cena'] . "</td>";
  25. echo '<td>';
  26. echo '<button type="submit" name="minus">-</button>';
  27. echo '<input type="text" name="ilosc" id="ilosc" value='.$numer.'>';
  28. echo '<button type="submit" name="plus">+</button>';
  29. echo "</td>";
  30. echo "<td><button type='submit' name='usun' value='usun'>Usun</button></td>";
  31. echo "</tr>";
  32. }
  33. }
  34.  
  35.  
  36.  


Ktos cos? Bo serio od wczoraj utknelam (IMG:style_emoticons/default/sad.gif)

Ten post edytował dolar 7.12.2016, 16:30:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Coś takiego mniej wiecej
  1. <?php
  2.  
  3. $produkty = array(
  4. 'kategoria' => 'bluzki',
  5. 'nazwa' => 'Lewis',
  6. 'rozmiar' => 'xl',
  7. 'cena' => 20.50
  8. ),
  9. 'kategoria' => 'spodnie',
  10. 'nazwa' => 'Lee',
  11. 'rozmiar' => 31,
  12. 'cena' => 99.50
  13. ),
  14. 'kategoria' => 'bluzki',
  15. 'nazwa' => 'Modoo',
  16. 'rozmiar' => 'l',
  17. 'cena' => 29.90
  18. ),
  19. 'kategoria' => 'spodnie',
  20. 'nazwa' => 'Wrangler',
  21. 'rozmiar' => 28,
  22. 'cena' => 100.50
  23. ),
  24. 'kategoria' => 'bluzki',
  25. 'nazwa' => 'Cropp',
  26. 'rozmiar' => 'l/xl',
  27. 'cena' => 29.50
  28. ),
  29. 'kategoria' => 'spodnie',
  30. 'nazwa' => 'BigStar',
  31. 'rozmiar' => 30,
  32. 'cena' => 89.50
  33. )
  34. );
  35.  
  36. if (array_key_exists('wybrany_produkt', $_POST)){
  37. $idProduktu=$_POST['wybrany_produkt'];
  38. if (isset($_SESSION['koszyk'][$idProduktu])) {
  39. $_SESSION['koszyk'][$idProduktu]['ilosc']++;
  40. } else {
  41. $_SESSION['koszyk'][$idProduktu] = $produkty[$idProduktu];
  42. $_SESSION['koszyk'][$idProduktu]['ilosc'] = 1;
  43. }
  44. echo '<div id="komunikat">';
  45. echo "Produkt dodano do koszyka!";
  46. echo '</div>';
  47.  
  48. }
  49.  
  50.  
  51.  
  52. ?>
  53.  
  54. <html>
  55. <head>
  56. <meta charset="UTF-8">
  57.  
  58. <style>
  59. #komunikat {
  60. position: absolute;
  61. width: 100%;
  62. text-align: center;
  63. top: 50px;
  64. font-weight: bolder;
  65. color: #8b0000;
  66. }
  67.  
  68. #produkty {
  69. width: 100%;
  70. text-align: center;
  71.  
  72. }
  73.  
  74. #produkty th {
  75. padding: 4px;
  76. background-color: #eee;
  77. }
  78.  
  79. #produkty td {
  80. padding: 4px;
  81. }
  82.  
  83. h1 {
  84. margin-top: 100px;
  85. text-align: center;
  86. }
  87.  
  88. #obrazek {
  89. width: 150px;
  90. position: absolute;
  91. top:0px;
  92. right:0px;
  93.  
  94. }
  95.  
  96. #koszyk {
  97. width: 150px;
  98. height: 80px;
  99. }
  100.  
  101. #liczbaProduktow {
  102. width: 20px;
  103. height: 20px;
  104. text-align: center;
  105. position: absolute;
  106. left:0px;
  107. top:-15px;
  108. font-weight: bolder;
  109. }
  110.  
  111.  
  112.  
  113. </style>
  114. </head>
  115. <body>
  116.  
  117. <div id="obrazek">
  118. <a href=""><img src="""/></a>
  119. <p id="liczbaProduktow">
  120. <?php
  121. if (array_key_exists('koszyk', $_SESSION)){
  122. echo count($_SESSION['koszyk']);
  123. }
  124.  
  125. ?>
  126.  
  127. </p>
  128. </div>
  129.  
  130. <h1>Produkty</h1>
  131. <form method="post">
  132. <table id="produkty">
  133. <tr>
  134. <th>Kategoria</th>
  135. <th>Nazwa</th>
  136. <th>Rozmiar</th>
  137. <th>Cena</th>
  138. <th>Opcje</th>
  139. </tr>
  140. <?php
  141. foreach ($produkty as $key => $produkt) {
  142. echo "<tr>";
  143. echo "<td>" . $produkt['kategoria'] . "</td>";
  144. echo "<td>" . $produkt['nazwa'] . "</td>";
  145. echo "<td>" . $produkt['rozmiar'] . "</td>";
  146. echo "<td>" . $produkt['cena'] . "</td>";
  147. echo '<td><button type="submit" name="wybrany_produkt" value="'.$key.'">Kup</button></td>';
  148. echo "</tr>";
  149. }
  150. ?>
  151. </table>
  152. </form>
  153.  
  154.  
  155. </body>
  156.  
  157. <script>
  158. setTimeout(function(){
  159. document.getElementById('komunikat').style.display = 'none';
  160. }, 2000);
  161. </script>
  162. </html>


  1. <?php
  2.  
  3. if (!array_key_exists('koszyk', $_SESSION)) {
  4. $_SESSION['koszyk'] = array();
  5. }
  6. ?>
  7.  
  8. <html>
  9. <head>
  10. <meta charset="UTF-8">
  11. <style>
  12.  
  13. #produkty {
  14. width: 100%;
  15. text-align: center;
  16.  
  17. }
  18.  
  19. #produkty th {
  20. padding: 4px;
  21. background-color: #eee;
  22. }
  23.  
  24. #produkty td {
  25. padding: 4px;
  26. }
  27.  
  28.  
  29. h1 {
  30. margin-top: 50px;
  31. text-align: center;
  32. }
  33.  
  34. #napisPusty {
  35. width:150px;
  36. margin: auto;
  37. }
  38.  
  39. #ilosc {
  40. width:25px;
  41. text-align: center;
  42. }
  43.  
  44. </style>
  45. </head>
  46. <body>
  47. <h1>Koszyk</h1>
  48.  
  49. <?php
  50.  
  51. if (empty($_SESSION['koszyk'])){
  52. echo "<div id='napisPusty'>Twoj koszyk jest pusty</div>";
  53. }
  54. ?>
  55. <form method="post">
  56. <table id="produkty">
  57. <tr>
  58. <th>Id</th>
  59. <th>Kategoria</th>
  60. <th>Nazwa</th>
  61. <th>Rozmiar</th>
  62. <th>Cena</th>
  63. <th>Ilosc</th>
  64. <th>Usuń</th>
  65. <th>Suma</th>
  66. </tr>
  67. <?php
  68. if (isset($_POST['ilosc']) && isset($_POST['aktualizuj'])) {
  69. foreach($_POST['ilosc'] as $key => $ilosc) {
  70. if ($ilosc > 0) {
  71. $_SESSION['koszyk'][$key]['ilosc'] = (int) $ilosc;
  72. }
  73. }
  74. }
  75.  
  76. if (isset($_POST['plus'])) {
  77. $_SESSION['koszyk'][$_POST['plus']]['ilosc']++;
  78. } elseif (isset($_POST['minus'])) {
  79. $_SESSION['koszyk'][$_POST['minus']]['ilosc']--;
  80. if ($_SESSION['koszyk'][$_POST['minus']]['ilosc'] < 1) {
  81. unset($_SESSION['koszyk'][$_POST['minus']]);
  82. }
  83. }
  84.  
  85. if (array_key_exists('usun', $_POST)){
  86. unset($_SESSION['koszyk'][$_POST['usun']]);
  87. }
  88.  
  89. foreach ($_SESSION['koszyk'] as $key => $produkt) {
  90.  
  91. echo "<tr>";
  92. echo "<td>" . $key . "</td>";
  93. echo "<td>" . $produkt['kategoria'] . "</td>";
  94. echo "<td>" . $produkt['nazwa'] . "</td>";
  95. echo "<td>" . $produkt['rozmiar'] . "</td>";
  96. echo "<td>" . $produkt['cena'] . "</td>";
  97. echo '<td>';
  98. echo '<button type="submit" name="minus" value="'.$key.'">-</button>';
  99. echo '<input type="text" name="ilosc['.$key.']" id="ilosc" value="'. $produkt['ilosc'] .'"/>';
  100. echo '<button type="submit" name="plus" value="'.$key.'">+</button>';
  101. echo '<button type="submit" name="aktualizuj">Aktualizuj ilość</button>';
  102. echo "</td>";
  103. echo "<td><button type='submit' name='usun' value='".$key."'>Usun</button></td>";
  104. echo "<td>" . $produkt['cena'] * $produkt['ilosc'] . "</td>";
  105. echo "</tr>";
  106.  
  107. }
  108.  
  109. ?>
  110.  
  111. </table>
  112. </form>
  113. </body>
  114. </html>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 21:31