winkelwagen
ik ben me even aan het verdiepen geweest in de tutorial van de webwinkel
maar ik kom vast te zitten wanneer ik een item uit de winkelwagen wil verwijderen want dan verwijdert hij namelijk alles wat er in de winkelwagen staat
hier het script voor de winkelwagen
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
session_start();
require 'mysqldb.php';
if(empty($_SESSION['winkelwagen']))
{
echo 'Je winkelwagen is nog leeg';
}
else
{
$winkelwagen = explode('|',$_SESSION['winkelwagen']);
$count = count($winkelwagen);
if($count == 1)
{
echo 'U heeft 1 product in uw winkelwagen';
}
else
{
echo 'u heeft '.$count.' producten in uw winkelwagen.';
}
?>
<script language="javascript" type="text/javascript">
<!--
function removeItem(item)
{
var answer = confirm('Weet je zeker dat je dit product wilt verwijderen?');
if(answer)
window.location='delete_cart_item.php?item=' + item;
}
function removeCart()
{
var answer = confirm('Weet je zeker dat je de winkelwagen wilt leegmaken?');
if(answer)
window.location='delete_cart.php';
}
//-->
</script>
<form method="POST" name="form" action="update_cart.php">
<table>
<tr>
<td>Productnummer</td>
<td>Productnaam</td>
<td>Hoeveelheid</td>
<td>Prijs per fles</td>
<td>Totaal</td>
<td> </td>
</tr>
<?php
$total= 0;
foreach($winkelwagen as $products)
{
/* $product[x] -->
x == 0 --> product_ID
x == 1 --> hoeveelheid
*/
$product = explode(',',$products);
$sql = "SELECT product_ID, productnaam, prijsfles FROM product WHERE product_ID=$product[0]";
if ($query=mysql_query($sql))
{
$pro_winkelwagen=mysql_fetch_object($query);
$i = 1;
$i++;
echo '<tr>';
echo ' <td>'.$pro_winkelwagen->product_ID.'</td>';
echo ' <td>'.$pro_winkelwagen->productnaam.'</td>';
echo ' <td><input type="hidden" name="productnummer_'.$i.'" value="'.$product[0].'">';
echo ' <input type="text" name="hoeveelheid_'.$i.'" value="'.$product[1].'" size="2" maxlength="2"></td>';
echo ' <td>'.$pro_winkelwagen->prijsfles.'</td>';
$price = $pro_winkelwagen->prijsfles;
$lineprice = $product[1] * $price;
echo ' <td>'.$lineprice.'</td>';
echo ' <td><a href="javascript: removeItem('.$i.')">X</td>';
echo '</tr>';
$total = $total + $lineprice;
}
else
{
echo 'Foutje: '.mysql_error().'<br>';
echo '$sql';
}
}
?>
<tr>
<td colspan="4">Totaal</td>
<td><?php echo $total; ?></td>
<td> </td>
</tr>
<tr>
<td colspan="2"> </td>
<td colspan="4"><input type="submit" value="Ververs"></td>
</tr>
</table>
</form>
• <a href="javascript:removeCart()">Winkelwagen leeghalen</a><br>
• <a href="checkout.php">Afrekenen</a>
<?php
}
?>
session_start();
require 'mysqldb.php';
if(empty($_SESSION['winkelwagen']))
{
echo 'Je winkelwagen is nog leeg';
}
else
{
$winkelwagen = explode('|',$_SESSION['winkelwagen']);
$count = count($winkelwagen);
if($count == 1)
{
echo 'U heeft 1 product in uw winkelwagen';
}
else
{
echo 'u heeft '.$count.' producten in uw winkelwagen.';
}
?>
<script language="javascript" type="text/javascript">
<!--
function removeItem(item)
{
var answer = confirm('Weet je zeker dat je dit product wilt verwijderen?');
if(answer)
window.location='delete_cart_item.php?item=' + item;
}
function removeCart()
{
var answer = confirm('Weet je zeker dat je de winkelwagen wilt leegmaken?');
if(answer)
window.location='delete_cart.php';
}
//-->
</script>
<form method="POST" name="form" action="update_cart.php">
<table>
<tr>
<td>Productnummer</td>
<td>Productnaam</td>
<td>Hoeveelheid</td>
<td>Prijs per fles</td>
<td>Totaal</td>
<td> </td>
</tr>
<?php
$total= 0;
foreach($winkelwagen as $products)
{
/* $product[x] -->
x == 0 --> product_ID
x == 1 --> hoeveelheid
*/
$product = explode(',',$products);
$sql = "SELECT product_ID, productnaam, prijsfles FROM product WHERE product_ID=$product[0]";
if ($query=mysql_query($sql))
{
$pro_winkelwagen=mysql_fetch_object($query);
$i = 1;
$i++;
echo '<tr>';
echo ' <td>'.$pro_winkelwagen->product_ID.'</td>';
echo ' <td>'.$pro_winkelwagen->productnaam.'</td>';
echo ' <td><input type="hidden" name="productnummer_'.$i.'" value="'.$product[0].'">';
echo ' <input type="text" name="hoeveelheid_'.$i.'" value="'.$product[1].'" size="2" maxlength="2"></td>';
echo ' <td>'.$pro_winkelwagen->prijsfles.'</td>';
$price = $pro_winkelwagen->prijsfles;
$lineprice = $product[1] * $price;
echo ' <td>'.$lineprice.'</td>';
echo ' <td><a href="javascript: removeItem('.$i.')">X</td>';
echo '</tr>';
$total = $total + $lineprice;
}
else
{
echo 'Foutje: '.mysql_error().'<br>';
echo '$sql';
}
}
?>
<tr>
<td colspan="4">Totaal</td>
<td><?php echo $total; ?></td>
<td> </td>
</tr>
<tr>
<td colspan="2"> </td>
<td colspan="4"><input type="submit" value="Ververs"></td>
</tr>
</table>
</form>
• <a href="javascript:removeCart()">Winkelwagen leeghalen</a><br>
• <a href="checkout.php">Afrekenen</a>
<?php
}
?>
en hier het script om een item te verwijderen
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
42
43
44
45
46
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
42
43
44
45
46
<?php
session_start();
if(is_numeric($_GET['item']) )
{
$item = $_GET['item'];
}
else
{
exit ('test'.$_GET['item']);
}
if(empty($_SESSION['winkelwagen']))
{
header('location: index.php');
}
else
{
$winkelwagen = explode('|', $_SESSION['winkelwagen']);
$count = count($winkelwagen);
foreach($winkelwagen as $products)
{
/* $product[x] -->
x == 0 -> product_ID
x == 1 -> hoeveelheid
*/
$product = explode(',', $products);
$i = 1;
$i++;
if($i != $item)
{
$inNewwinkelwagen = $product[0].','.$product[1];
$newwinkelwagen = $newwinkelwagen.'|'.$inNewwinkelwagen;
}
}
$newwinkelwagen = substr($newwinkelwagen, 1);
}
session_unset($_SESSION['winkelwagen']);
$_SESSION['winkelwagen'] = $newwinkelwagen;
header('location: cart.php');
?>
session_start();
if(is_numeric($_GET['item']) )
{
$item = $_GET['item'];
}
else
{
exit ('test'.$_GET['item']);
}
if(empty($_SESSION['winkelwagen']))
{
header('location: index.php');
}
else
{
$winkelwagen = explode('|', $_SESSION['winkelwagen']);
$count = count($winkelwagen);
foreach($winkelwagen as $products)
{
/* $product[x] -->
x == 0 -> product_ID
x == 1 -> hoeveelheid
*/
$product = explode(',', $products);
$i = 1;
$i++;
if($i != $item)
{
$inNewwinkelwagen = $product[0].','.$product[1];
$newwinkelwagen = $newwinkelwagen.'|'.$inNewwinkelwagen;
}
}
$newwinkelwagen = substr($newwinkelwagen, 1);
}
session_unset($_SESSION['winkelwagen']);
$_SESSION['winkelwagen'] = $newwinkelwagen;
header('location: cart.php');
?>
het probleem kan volgens mij twee dingen zijn, oftewel geeft hij elk item in de winkel dezelfde id mee owel maakt hij geen nieuwe sessie variabele aan
zelf denk ik dat het aan het eerste ligt
in het script zie je $i++; in de tutorial heeft hij geen waarde dus heb ik ervoor gezet $i = 1; als ik dit niet deed gaf hij steeds aan dat de variabele niet gezet was.
ik snap eigenlijk niet goed wat de bedoeling is van die $i want met wat het script doet krijgt $i steeds de waarde twee maar dat doet hij voor elk item
is er iemand die me op weg kan helpen of die ziet waar ik de mist in ga
mvg johan
johan schreef op 21.02.2009 08:49:
Maar zorg dan dat je $i declareert buiten je foreach loop. Nu krijgt hij telkens opnieuw de waarde 1, tel je er 1 bij op ($i++) en ga je er dan mee werken. $i zal in jouw script dus altijd de waarde 2 hebben...in het script zie je $i++; in de tutorial heeft hij geen waarde dus heb ik ervoor gezet $i = 1; als ik dit niet deed gaf hij steeds aan dat de variabele niet gezet was.
Code (php)
Of als je flexibeler wilt zijn;
ik zal die arrays toch eens goed moeten instuderen want daar ben ik nog niet zo handig mee
is er misschien ergens een duidelijke nederlandse handleiding over arrays?
ik heb dit script nu ook maar van de tutorials dus neem me niet kwalijk dat ik met explodes werk, ik zou zeggen post ook een tutorial hoe je een winkelwagen kan maken met arrays dan leert iedereen het op de juiste manier of toch de manier waarop jij het beter vind.
ik doe niet meer dan lezen en doen wat er in de tutorials staat ik ken nog lang niet alle functies van php en dat zal ook nog even duren ook voor ik ze zal kennen maar niet iedereen is nu eenmaal even geniaal he.
bedankt voor jullie hulp ik kan weer vlot verder en ik ga me zeker eens verdiepen in de arrays
ik adviseer trouwens om behalve het aantal producten, ook de prijs van het product in de array te zetten. Wanneer de prijs van een product veranderd, zou het soms kunnen betekenen dat men duurder uit is, terwijl men het product juist voor een bepaalde prijs aangeklikt heeft.
er komt een functie in dat wanneer men meer dan 6 stuks koopt van hetzelde item deze aan een andere prijs zijn
ook moet men het aantal kunnen verhogen of verminderen met 1 dmv een plus en min knop het is de eerste keer dat ik rond een webwinkel werk en er komt nog veel bij zien