login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Winkelwagen probleem.

Offline Designick - 22/06/2009 23:57 (laatste wijziging 22/06/2009 23:58)
Avatar van DesignickNieuw lid Hallo,

Ik ben al een aantal weken aan het kloten met een tutorial over een webshop van internet. Heb nu alles zover dat het goed werkt alleen ik wil een extra optie toevoegen waar de klant zijn Maat kan kiezen. Ik heb nog weinig verstand van sessions en kom er niet meer uit. Hier de Shop pagina:
  1. <?PHP include ('config.php') ?>
  2. <?php
  3. $sql = "SELECT * FROM product ORDER BY id DESC";
  4. $query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
  5. $num = mysql_num_rows($query);
  6.  
  7. echo "<table width=\"500\" height=\"320\" border=\"1\">";
  8. $teller = 0;
  9.  
  10. if(empty($num)) {
  11. echo "<p>Momenteel zijn er geen producten</p>\n";
  12. } else {
  13. // HIER PRODUCT TONEN ...
  14. while($product = mysql_fetch_object($query)) {
  15.  
  16. if ($teller == 0)
  17. {
  18. echo "<TABLE border=0>";
  19. echo "<TR>";
  20. }
  21.  
  22. echo "<form action=\"add.php\" method=\"post\">\n";
  23.  
  24. $opdracht = "SELECT * FROM foto WHERE foto_id = $product->id";
  25. $result = mysql_query($opdracht);
  26. while ($afb = mysql_fetch_array($result))
  27. echo "<td width=\"206\" rowspan=\"2\" valign=\"top\"><a href='/database/$afb[fotonaam]'><img src='/database/$afb[fotonaam]' width=200 heigth=200></td></a>";
  28. echo "<input type=\"hidden\" name=\"productnummer\" value=\"".$product->productnummer."\" />";
  29. echo "<td width=\"300\" height=\"198\" valign=\"top\" style=\"font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#FD0071; font-weight:bold;\"/><p>$product->omschrijving<br></p>";
  30. echo "</tr>";
  31. echo "<tr>";
  32. echo "<td align=\"top\" style=\"font-size:14px; font-family:Arial, Helvetica, sans-serif; background-color:transparent; border:none; color:#FD0071; font-weight:bold;\"/>Per stuk: $product->prijs</td>";
  33. echo "</tr>";
  34. echo "<tr>";
  35. echo "<td align=\"top\"><h1>Maat:&nbsp;<select name = \"maat\" id = \"maat\" style=\"font-size:10px; font-weight:bold; background-color:transparent; color:333333;\">
  36. <option value=\"S\">S</option>
  37. <option value=\"M\">M</option>
  38. <option value=\"L\">L</option>
  39. <option value=\"XL\">XL</option>
  40. </select></td></h1>\n";
  41. echo "</tr>";
  42. echo "<tr>";
  43. echo "<td align=\"top\"><h1>Aantal:<select name = \"hoeveelheid\" id = \"hoeveelheid\" style=\"font-size:10px; font-weight:bold; background-color:transparent; color:333333;\">
  44. <option value=\"1\">1</option>
  45. <option value=\"2\">2</option>
  46. <option value=\"3\">3</option>
  47. <option value=\"4\">4</option>
  48. <option value=\"5\">5</option>
  49. <option value=\"6\">6</option>
  50. <option value=\"7\">7</option>
  51. <option value=\"8\">8</option>
  52. </select></td></h1>\n";
  53. echo "<td><input type=\"submit\" name=\"submit\" value=\"BESTELLEN &rarr;\" style=\"font-size:14px; font-family:Arial, Helvetica, sans-serif; background-color:transparent; border:none; cursor:pointer; color:#FD0071; font-weight:bold;\"/></td>\n";
  54. echo "</form><td>\n";
  55. $teller++;
  56. if ($teller ==2) {
  57. echo "</TR>";
  58. $teller = 0;
  59. }
  60. }
  61. echo ("</TABLE>");
  62. }
  63. ?>


Dit wordt verstuurd nar de volgende pagina 'add.php':
  1. <?php
  2.  
  3. if(is_numeric($_POST['productnummer'])) $productnummer = $_POST['productnummer'];
  4. else exit("Er zit een fout in de productcode.");
  5. if(is_numeric($_POST['hoeveelheid'])) $hoeveelheid = $_POST['hoeveelheid'];
  6. else exit("Er iets fout gegaan met de hoeveelheid.");
  7.  
  8. $maat = $_POST['maat'];
  9.  
  10. if ($hoeveelheid == 0) {
  11. echo "<p>0 bestellen is niet mogelijk</p>\n";
  12. echo "<p><a href=\"javascript:history.back()\">Vorige pagina</a></p>\n";
  13. exit();
  14. }
  15.  
  16. if (empty($_SESSION['cart'])){
  17.  
  18. $_SESSION['cart'] = $productnummer.",".$hoeveelheid.",".$maat;
  19. } else {
  20.  
  21. $cart = explode("|",$_SESSION['cart']);
  22.  
  23. $count = count($cart);
  24.  
  25.  
  26. $add = TRUE;
  27. foreach($cart as $products)
  28. {
  29. // Exploden
  30. /*
  31.   $product[x] -->
  32.   x == 0 -> productnummer
  33.   x == 1 -> hoeveelheid
  34.   */
  35. $product = explode(",",$products);
  36. if ($product[0] == $productnummer) {
  37. // Product al in de winkelwagen
  38. $product[1] = $product[1] + $hoeveelheid; // Nieuwe hoeveelheid is oude + nieuwe
  39. $add = FALSE; // Dus niet toevoegen
  40. }
  41.  
  42. // En weer in de sessie zetten
  43. $i++;
  44. if ($i == 1) {
  45. $_SESSION['cart'] = $product[0].",".$product[1];
  46. } else {
  47. $_SESSION['cart'] = $_SESSION['cart']."|".$product[0].",".$product[1];
  48. }
  49. }
  50.  
  51. if ($add) { // Als we dus wel moeten toevoegen
  52. $_SESSION['cart'] = $_SESSION['cart']."|".$productnummer.",".$hoeveelheid.",".$maat;
  53. }
  54. }
  55.  
  56. // forward to cart
  57. header("Location: cart.php");
  58. ?>


Hopelijk zien jullie sneller, wat ik fout doe.

Alvast bedankt

4 antwoorden

Gesponsorde links
Offline Koen - 23/06/2009 00:03
Avatar van Koen PHP expert Misschien is het ook handig om even te vermelden wat er precies niet werkt, we zijn geen superhelden die meteen de fout in die 120 regels code zien. Als je een foutmelding krijgt, vermeld deze dan ook 
Offline Designick - 23/06/2009 09:56
Avatar van Designick Nieuw lid Ik krijg geen foutmelding, hij voegt alles gewoon toe in de tabel behalve de 'Maat'.
Offline Martijn - 23/06/2009 11:16
Avatar van Martijn Crew PHP
  1. if ($i == 1) {
  2. $_SESSION['cart'] = $product[0].",".$product[1];
  3. } else {
  4. $_SESSION['cart'] = $_SESSION['cart']."|".$product[0].",".$product[1];
  5. }

moet volgens mij dit zijn:
  1. if ($i == 1) {
  2. $_SESSION['cart'] = $product[0].",".$product[1].",".$product[2];
  3. } else {
  4. $_SESSION['cart'] = $_SESSION['cart']."|".$product[0].",".$product[1].",".$product[2];
  5. }
Offline Designick - 23/06/2009 17:54
Avatar van Designick Nieuw lid
DeviourSoul schreef:
[..code..]
moet volgens mij dit zijn:
[..code..]

Nog niet.. heb 't wel geprobeerd. Hij laat gewoon niks bij de input zien
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s