login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[php] Winkelmandje

Offline Simax - 28/08/2008 12:13
Avatar van SimaxOnbekend Ik heb een winkelmandje waarin alle producten worden weergegeven die zijn toegevoegd door de gebruiker. Deze zijn opgeslagen in de database en worden daaruit opgehaald..

Nu worden deze producten netjes onder elkaar weergegeven. Ik zou graag vooraan ieder product een checkbox toevoegen. Indien men dan een of meer producten(checkboxes) aanvinkt en op verwijderen klikt, zouden deze producten uit het winkelmandje verwijderd moeten worden.

Iemand die mij hier mee op weg kan helpen? Kom er niet uit..
http://www.warm...ingcart.do

Simax

8 antwoorden

Gesponsorde links
Offline ranco - 28/08/2008 12:57
Avatar van ranco PHP gevorderde Zorg voor een koppeling (lees relatie) tussen een product en de checkbox. Indexeer bijvoorbeeld alle producten door ze in een array te stoppen. Zorg dan bijvoorbeeld dat alle checkboxen de naam "Verwijderen" heten en zorg dat je het arraynummer er achteraan plakt. Zo wordt de checkbox van besteld artikel nr 1: Verwijderen001.

Wanneer op de formsubmit wordt gedrukt loop je alle checkboxen af, en verwijder je deze producten...

Moeilijk uit te leggen.. maar hopelijk snap je het idee.
Offline Simax - 28/08/2008 13:46 (laatste wijziging 28/08/2008 14:51)
Avatar van Simax Onbekend Zou het ok op deze manier kunnen?
  1. $gebruikerid = $_SESSION["gebruikerid"];
  2. $select = "SELECT * FROM winkelmandje WHERE gebruikerid = '".$gebruikerid."'";
  3. $query = mysql_query($select) or die(mysql_error());
  4.  
  5. if(mysql_num_rows($query) != 0)
  6. {
  7. while($result = mysql_fetch_array($query))
  8. {
  9. print "<input name=\"".$result["productid"]."\" type=\"checkbox\"/>";
  10. }
  11. }
  12. else
  13. {
  14. print "Er bevinden zich geen producten in uw winkelmandje.";
  15. }


edit
En dan zou op een of andere manier met een druk op de knop 'verwijderen' alle geselecteerde producten moeten worden verwijderd..

  1. if(isset($_POST["verwijderen"]))
  2. {
  3. Verwijder alle aangevinkte checkboxes..
  4. }
Offline ranco - 28/08/2008 17:27
Avatar van ranco PHP gevorderde Inderdaad, je kunt de checkbox ook de naam geven van het productid.
Offline Simax - 28/08/2008 18:43
Avatar van Simax Onbekend En hoe zou ik de geselecteerde producten dan kunnen verwijderen?
Offline ranco - 29/08/2008 00:02
Avatar van ranco PHP gevorderde Haal ieder productid op van de bestelling en check per stuk of de checkbox (die dus dezelfde naam/id heeft) of deze true of false is.
Maak vervolgens met een if then duidelijk of een product verwijderd dient te worden of niet.
Offline Simax - 29/08/2008 10:19
Avatar van Simax Onbekend Heb je misschien een klein voorbeeldje om mij op weg te helpen? Ik begrijp je niet helemaal 
Offline Koen - 29/08/2008 10:57
Avatar van Koen PHP expert In je while:
  1. echo '<input type="checkbox" name="delete['.$product_id.']" />';

en dan;

  1. foreach( $_POST['delete'] as $key => $value )
  2. {
  3. if( isset( $value ) )
  4. {
  5. // delete query "WHERE `product_id` = $key"
  6. }
  7. }


Zoiets ongeveer 

Succes
Offline Simax - 03/09/2008 13:00 (laatste wijziging 03/09/2008 13:03)
Avatar van Simax Onbekend Dit is wat ik nu heb, maar het wil niet werken..

winkelmandje.php
  1. <h1>Winkelmandje</h1>
  2.  
  3. if(isset($_SESSION["login"]))
  4. {
  5. $gebruikerid = $_SESSION["gebruikerid"];
  6. $select = "SELECT * FROM winkelmandje INNER JOIN producten ON(winkelmandje.productid = producten.productid) WHERE gebruikerid = {$gebruikerid}";
  7. $query = mysql_query($select) or die(mysql_error());
  8.  
  9. if(mysql_num_rows($query) != 0)
  10. {
  11. print "<table>";
  12. while($result = mysql_fetch_array($query))
  13. {
  14. print "<tr>
  15. <form action=\"?page=verwijderen\" method=\"post\">
  16. <td><input name=\"delete{$result["productid"]}\" type=\"checkbox\"/></td>
  17. <td>{$result["productid"]}</td>
  18. <td><a href=\"?page=producten&id={$result["productid"]}\">{$result["productnaam"]}</a></td>
  19. <td>€ {$result["prijs"]}</td>
  20. </tr>";
  21. }
  22. print "<tr>
  23. <td><input name=\"verwijderen\" type=\"submit\" value=\"Verwijderen\"/></td>
  24. </tr></table>";
  25. }
  26. else
  27. {
  28. print "<p class=\"false\">Uw winkelmandje is leeg.</p>";
  29. }
  30. }
  31. else
  32. {
  33. print "<p class=\"false\">U dient ingelogd te zijn.</p>";
  34. }


verwijderen.php
  1. if(isset($_POST["verwijderen"]))
  2. {
  3. if(isset($_SESSION["login"]))
  4. {
  5. $gebruikerid = $_SESSION["gebruikerid"];
  6. foreach($_POST["delete"] as $key => $value)
  7. {
  8. if(isset($value))
  9. {
  10. $delete = "DELETE FROM winkelmandje WHERE gebruikerid = {$gebruikerid} AND productid = {$key}";
  11. mysql_query($delete) or die(mysql_error());
  12. }
  13. }
  14. header("refresh: 0; url=?page=winkelmandje");
  15. }
  16. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.245s