login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Produkten niet updaten in winkelwagen

Offline bartvdb - 09/01/2006 19:48
Avatar van bartvdbNieuw lid Hallo iedereen,

Ik ben voor een vriend een website aan het bouwen (voor een broodjesbar waarbij men items in een winkelwagentje kan voegen en deze achteraf doormailen).

Alles werkt perfect behalve dat ik nu vastzit met 1 ergelijk probleem.

Het script update produkten in de winkelwagen aan de hand van hun item_id (denk ik) en verhoogt gewoon de prijs en het aantal.

Ik zou het graag zo zien gebeuren dat elk item dat besteld wordt, ook al bestaat het al in het mandje, dat deze weergegeven wordt op een nieuwe regel in de tabel als nieuw produkt.

vb)

SLECHT:
2 |broodjes kaas| €4,00
2 |broodjes hesp| €4,00

GOED:
1 |broodje kaas| €2,00
1 |broodje kaas| €2,00
1 |broodje hesp| €2,00
1 |broodje hesp| €2,00


Volgens mij is het maar een kleine aanpassing, maar ik zit momenteel muurvast, misschien dat hier iemand mij uit de nood kan helpen.

dank op voorhand.



  1. <?php
  2. class cart
  3. {
  4.  
  5. var $items;
  6. var $sub_total;
  7. function cart() {
  8. $this->items = array();
  9. $sub_total = 0;
  10. }
  11. function add_item($item_id, $qty, $product, $price_id, $price2_id, $price3_id, $price4_id, $extras, $item_price, $item_price2, $item_price3, $item_price4) {
  12. // Item not in cart
  13. if(!isset($this->items[$item_id]))
  14. {
  15. // Add item to cart
  16. $this->items[$item_id]["qty"] = $qty;
  17. $total_cost = $this->items[$item_id]["total_cost"] = $qty * ($item_price + $item_price2 + $item_price3 + $item_price4);
  18. $this->items[$item_id]["product"] = $product;
  19. $this->items[$item_id]["price_id"] = $price_id;
  20. $this->items[$item_id]["price2_id"] = $price2_id;
  21. $this->items[$item_id]["price3_id"] = $price3_id;
  22. $this->items[$item_id]["price4_id"] = $price4_id;
  23. $this->items[$item_id]["extras"] = $extras;
  24. $this->sub_total += $total_cost;
  25. }
  26. else
  27. {
  28. // Update item
  29. $item_count = $this->items[$item_id]["qty"] += $qty;
  30. $this->items[$item_id]["total_cost"] = $item_count * ($item_price + $item_price2 + $item_price3 + $item_price4);
  31. $new_cost = $qty * ($item_price + $item_price2 + $item_price3 + $item_price4);
  32. // Calculate subtotal
  33. $this->sub_total += $new_cost;
  34. }
  35. }
  36. function modify_qty($item_id, $new_qty, $item_price, $item_price2, $item_price3, $item_price4) {
  37. // Modify quantity
  38. $prev_qty = $this->items[$item_id]["qty"];
  39. $qty_diff = $prev_qty - $new_qty;
  40. $this->items[$item_id]["total_cost"] = $new_qty * ($item_price + $item_price2 + $item_price3 + $item_price4);
  41. $this->items[$item_id]["qty"] = $new_qty;
  42. // Calculate new subtotal
  43. $this->sub_total -= $qty_diff * $item_price;
  44. }
  45. function delete_item($item_id) {
  46. // Delete item from cart
  47. $this->sub_total -= $this->items[$item_id]["total_cost"];
  48. $this->items[$item_id] = array();
  49. }
  50. function num_items() {
  51. // Calculate total number of items
  52. $total_items = 0;
  53. foreach($this->items as $item_id => $item_data)
  54. $total_items += $item_data["qty"];
  55. return $total_items;
  56. }
  57. function clear() {
  58. // Clear out the cart
  59. $this->items = array();
  60. $this->sub_total = 0;
  61. }
  62. function showcart() {
  63. //dumps cart contents to screen
  64. $current_url = $_SERVER['PHP_SELF'];
  65. foreach ($this->items as $thekey => $thevalue)
  66. {
  67. //print qty
  68. print "<tr><td align='left' valign='top'>";
  69. print "<div align=right>" . $this->items[$thekey]["qty"] . "</div>";
  70. //print item number
  71. if (!$this->items[$thekey]["product"])
  72. {
  73. print "</td><td align='left' valign='top'>";
  74. print "<div align=center></div>";
  75. }
  76. //print product name
  77. print "</td><td align='left' valign='top'>";
  78. print "<strong>&nbsp;" .($this->items[$thekey]["product"])."</strong><br />";
  79. print "&nbsp;" .eregi_replace("[^, ,a-z]", "", $this->items[$thekey]["price_id"])."&nbsp;";
  80. print "&nbsp;" .eregi_replace("[^, ,a-z]", "", $this->items[$thekey]["price2_id"])."&nbsp;";
  81. print "&nbsp;" .eregi_replace("[^, ,a-z]", "", $this->items[$thekey]["price3_id"])."&nbsp;";
  82. print "&nbsp;" .eregi_replace("[^, ,a-z]", "", $this->items[$thekey]["price4_id"])."&nbsp;";
  83. print "&nbsp;" .eregi_replace("[^, ,a-z]", "", $this->items[$thekey]["extras"])."&nbsp;";
  84. //print total cost
  85. print "</td><td align='left' valign='top'>";
  86. print "<div align=right>€" .number_format($this->items[$thekey]["total_cost"], 2, ',', ' '). "&nbsp;&nbsp;</div>";
  87. //print action column
  88. //print "</td><td>";
  89. //print "<form name=form1 method=get action=". $current_url .">";
  90. //print "<input type=submit value=Verwijder name=Submit><input type=hidden name=delete value=1>";
  91. //print "<input name=itemid type=hidden value=" . $thekey . "></form></tr>";
  92. //print "</td><tr>";
  93. }
  94. }
  95. }

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.189s