Items uit winkelwagen verwijderen
Ik ben een simpele webwinkel aan het maken. Men kan producten uit de database aanklikken en toevoegen aan de winkelwagen. Maar ik wil nu dat men de mogelijkheid krijgt om items uit de winkelwagen te verwijderen.
Dit is de relevante code van de winkelwagen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
echo "<b><u>Inhoud van de winkelwagen</u>:</b><br />\n";
echo "<table>";
$totaalprijs = 0;
for ($i=0; $i<count($winkelwagen); $i++)
{
$zoek = mysql_query("SELECT * FROM product WHERE product_ID = '".$winkelwagen[$i]."'");
while($abc = mysql_fetch_assoc($zoek))
{
$gerecht = $abc['prod_naam'];
$prijs = $abc['prod_prijs'];
echo "<tr><td>".$winkelwagen[$i]."</td><td>".$gerecht."</td>
<td>&euro ".number_format($prijs,"2",",","")."</td>
<td><a href=>Verwijder</a></td></tr>";
$totaalprijs = $prijs + $totaalprijs;
}
}
echo "</table>";
/?>
echo "<b><u>Inhoud van de winkelwagen</u>:</b><br />\n";
echo "<table>";
$totaalprijs = 0;
for ($i=0; $i<count($winkelwagen); $i++)
{
$zoek = mysql_query("SELECT * FROM product WHERE product_ID = '".$winkelwagen[$i]."'");
while($abc = mysql_fetch_assoc($zoek))
{
$gerecht = $abc['prod_naam'];
$prijs = $abc['prod_prijs'];
echo "<tr><td>".$winkelwagen[$i]."</td><td>".$gerecht."</td>
<td>&euro ".number_format($prijs,"2",",","")."</td>
<td><a href=>Verwijder</a></td></tr>";
$totaalprijs = $prijs + $totaalprijs;
}
}
echo "</table>";
/?>
Op een andere pagina zijn items via een querystring toegevoegd aan deze winkelwagen. Alles werkt goed: je krijgt een mooi lijstje met bestelde items. Ik heb ook al aan ieder item een link met "Verwijder" toegevoegd, maar die gaat nog nergens heen. Nu wil ik dus een item uit het lijstje kunnen verwijderen.
Kan iemand me op weg helpen?
Gewijzigd op 06/12/2010 16:15:26 door Pim B
Mochten we nu weten waar $winkelwagen van daan komt, kunnen we je vraag beantwoorden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$winkelwagen = array();
$_SESSION['winkelwagen'] = $winkelwagen;
CheckBestel();
Shop(); // lijst met items die je kan bestellen
// de functies
function CheckBestel()
{
if (isset($_GET['bestel']))
{
// er is een bestelling => handel deze af \\
$_SESSION['winkelwagen'][] = $_GET['bestel'];
}
}
function Shop() // Functie voor lijst met items uit de database \\
{
echo "Klik <a href='afrekenen.php'>hier</a> hier om te zien wat er
in uw winkelwagen zit en om af te rekenen.<br />\n";
// Items uit de database op het scherm zetten \\
$query = mysql_query("SELECT * FROM Product");
echo "<br /><table border=1><tr><th width=5%> </th>";
echo "<th width=27%>Product</th><th width=8%>Prijs</th><th width=40%>Omschrijving</th>
<th width=10%>Bestellen</th></tr>\n";
while($abc = mysql_fetch_assoc($query))
{
$id = $abc['product_ID'];
$product = $abc['prod_naam'];
$prijs = $abc['prod_prijs'];
$omschr = $abc['prod_omschr_kort'];
echo "<tr><td>".$id."</td><td>".$product."</td><td>&euro ".number_format($prijs,"2",",","")."</td>
<td>".$omschr."</td><td><a href='producten.php?bestel=$id'>Bestel</a></td></tr>\n";
}
echo "</table>\n";
echo "<br />Klik <a href='afrekenen.php'>hier</a> om af te rekenen.<br /><br />\n"; // dus om naar winkelwagen te gaan
}
?>
$winkelwagen = array();
$_SESSION['winkelwagen'] = $winkelwagen;
CheckBestel();
Shop(); // lijst met items die je kan bestellen
// de functies
function CheckBestel()
{
if (isset($_GET['bestel']))
{
// er is een bestelling => handel deze af \\
$_SESSION['winkelwagen'][] = $_GET['bestel'];
}
}
function Shop() // Functie voor lijst met items uit de database \\
{
echo "Klik <a href='afrekenen.php'>hier</a> hier om te zien wat er
in uw winkelwagen zit en om af te rekenen.<br />\n";
// Items uit de database op het scherm zetten \\
$query = mysql_query("SELECT * FROM Product");
echo "<br /><table border=1><tr><th width=5%> </th>";
echo "<th width=27%>Product</th><th width=8%>Prijs</th><th width=40%>Omschrijving</th>
<th width=10%>Bestellen</th></tr>\n";
while($abc = mysql_fetch_assoc($query))
{
$id = $abc['product_ID'];
$product = $abc['prod_naam'];
$prijs = $abc['prod_prijs'];
$omschr = $abc['prod_omschr_kort'];
echo "<tr><td>".$id."</td><td>".$product."</td><td>&euro ".number_format($prijs,"2",",","")."</td>
<td>".$omschr."</td><td><a href='producten.php?bestel=$id'>Bestel</a></td></tr>\n";
}
echo "</table>\n";
echo "<br />Klik <a href='afrekenen.php'>hier</a> om af te rekenen.<br /><br />\n"; // dus om naar winkelwagen te gaan
}
?>
Gewijzigd op 06/12/2010 17:37:29 door Pim B
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// ...
if (!empty($_GET['haal_id_uit_sessie'])) { // niets verbiedt je om dit anders te noemen
$winkelwagen_temp = $_SESSION['winkelwagen'];
$_SESSION['winkelwagen'] = array(); // sessie variabele leegmaken
foreach ($winkelwagen_temp as $key=>$item) { // sessie variabele opnieuw opbouwen, met alle elementen, behalve dat ene
if ($key != (int) $_GET['key']) {
$_SESSION['winkelwagen'][] = $item;
}
}
}
// ...
for ($i=0; $i<count($winkelwagen); $i++) {
// ...
echo '... <a href="?haal_id_uit_sessie=1&key='. $i .'">Verwijder</a> ...';
}
?>
// ...
if (!empty($_GET['haal_id_uit_sessie'])) { // niets verbiedt je om dit anders te noemen
$winkelwagen_temp = $_SESSION['winkelwagen'];
$_SESSION['winkelwagen'] = array(); // sessie variabele leegmaken
foreach ($winkelwagen_temp as $key=>$item) { // sessie variabele opnieuw opbouwen, met alle elementen, behalve dat ene
if ($key != (int) $_GET['key']) {
$_SESSION['winkelwagen'][] = $item;
}
}
}
// ...
for ($i=0; $i<count($winkelwagen); $i++) {
// ...
echo '... <a href="?haal_id_uit_sessie=1&key='. $i .'">Verwijder</a> ...';
}
?>
Raak je uit aan wat ik probeer te zeggen?
Merk op: zoals het nu is, kan dit problemen geven als ze, na het verwijderen, nog eens refreshen, aangezien de gegevens in de url staan.
Gewijzigd op 06/12/2010 16:55:16 door Kris Peeters
En als de GET leeg is zal ook je winkelwagen weer helemaal leeg zijn.
Dus volgens mij klopt er weinig van de logica.
Kijk eens naar bestaande scripten.
De session_start() staat wel in m'n script, maar ik heb niet alles gekopieerd omdat niets alles relevant is voor mijn vraag.