textfield voor number of items in shop
Ik zit met een moeilijkheidje. Heb namelijk een shopping cart gemaakt met behulp van voorbeelden op het web maar nu wil ik in mijn checkout.php script een veld inbouwen welke de item hoeveelheden kan wijzigen (dus bijvoorbeeld een gebruiker besluit om 20 producten van item A te nemen ) en een optie waarbij ik door op een image te klikken 1 item van producteenheden kan verwijderen. Nu lukt het mij alleen om een teller te bouwen welke de items met 1 ophoogt en een image welke bij klikken alle items van een bepaald product verwijderd.
ik doe en gebruik hiervoor het volgende:
checkout.php:
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
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
<?
if (count($items) > 0)
{
foreach ($items as $key => $val)
{
$cat_num = substr($val['item_id'], 3);
$icat_num = $val['item_id'];
$cartContents = '<td><a href="server.php?action=removeFromCart&id=' . $val['item_id'] . '" onclick="return removeFromCart(' . $val['item_id'] . ')" ><img src="stop.JPG" border="0"></a><br></div></td>';
echo "<tr class=\"text\">
<td></td>
<td >".$cat_num."</td>
<td class=\"text\">".$val['title']."</td>
<td></td>
<td>".$val['qty']."</td>
<td rowpan=2></td>
<form method=\"post\" action=\"server.php?action=addToCart\">
<td><input name=\"id\" id=\"id\" value=\"$val[item_id]\" type=\"hidden\"><input type=\"image\" src=\"images/plus.png\" alt=\"submit\" value=\"submit\" onclick=\"return addToCart($val[item_id]);\" /></td>
</form>
<td></td><td></td>
<td>". moneyFormat($Cart->GetSubTotal($val['item_id'])) . " €</td>
}
}
?>
if (count($items) > 0)
{
foreach ($items as $key => $val)
{
$cat_num = substr($val['item_id'], 3);
$icat_num = $val['item_id'];
$cartContents = '<td><a href="server.php?action=removeFromCart&id=' . $val['item_id'] . '" onclick="return removeFromCart(' . $val['item_id'] . ')" ><img src="stop.JPG" border="0"></a><br></div></td>';
echo "<tr class=\"text\">
<td></td>
<td >".$cat_num."</td>
<td class=\"text\">".$val['title']."</td>
<td></td>
<td>".$val['qty']."</td>
<td rowpan=2></td>
<form method=\"post\" action=\"server.php?action=addToCart\">
<td><input name=\"id\" id=\"id\" value=\"$val[item_id]\" type=\"hidden\"><input type=\"image\" src=\"images/plus.png\" alt=\"submit\" value=\"submit\" onclick=\"return addToCart($val[item_id]);\" /></td>
</form>
<td></td><td></td>
<td>". moneyFormat($Cart->GetSubTotal($val['item_id'])) . " €</td>
}
}
?>
server.php
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
106
107
108
109
110
111
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
106
107
108
109
110
111
<?
[code]<?php
/**
* Ajax shopping cart
*/
session_start();
require_once 'config.php';
// setup database connection
try
{
$db = new CDB(DB_HOST, DB_USER, DB_PASS, DB_NAME);
}
catch(ConnectException $exception)
{
echo "Database Connection Error:<br />";
var_dump($exception->getMessage());
}
$action = (isset($_GET['action']) ? $_GET['action'] : '');
switch($action)
{
// add item to cart
case 'addToCart':
$id = $db->real_escape_string($_POST['id']);
// get item's details
$sql = "SELECT short_name, sale_price_euro
FROM suppliers
WHERE intern_cat_num = '$id'";
$result = $db->query($sql);
$row = $result->fetch_assoc();
// initialize the cart and add the item (quantity = 1)
$Cart = new Cart(session_id());
$added = $Cart->AddItem($id, 1, $row['sale_price_euro']);
// if this was an Ajax call, return JSON, else redirect to previous page
if (isAjax())
{
if ($added['newItem'] == 1)
$isNew = 1;
else
$isNew = 0;
$subTotal = moneyFormat($Cart->GetSubTotal($id));
$total = moneyFormat($Cart->GetTotal());
$response = '{ "cartItemDetails" : [
{ "title" : "' . $row['short_name'] . '",
"id" : "' . $id .'",
"newPrice" : "'. $subTotal . '",
"newQty" : "' . $added['qty'] . '",
"total" : "' . $total . '",
"isNew" : "' . $isNew . '" } ]}';
echo $response;
}
else
{
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
$result->close();
break;
// remove item from cart
case 'removeFromCart':
$id = (isset($_GET['id']) ? $_GET['id'] : $_POST['id']);
$id = $db->real_escape_string($id);
// initialize the cart and remove the specified item
$Cart = new Cart(session_id());
$removed = $Cart->RemoveItem($id);
// if this was an Ajax call, return the cart's total value, else redirect to previous page
if (isAjax())
{
echo moneyFormat($Cart->GetTotal());
}
else
{
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
break;
// empty cart
case 'emptyCart':
// initialize the cart and empty it
$Cart = new Cart(session_id());
$empty = $Cart->Clear();
// if this was an Ajax call, return true, else redirect to previous page
if (isAjax())
{
echo $empty;
}
else
{
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
break;
}
?>
Ik weet nu niet hoe ik de code in server.php aanpas zodat het doet wat ik zograag wil ....... weet iemand raad hierbij alle hulp is bruikbaar
in afwachting op jullie reacties tot spoed
[code]<?php
/**
* Ajax shopping cart
*/
session_start();
require_once 'config.php';
// setup database connection
try
{
$db = new CDB(DB_HOST, DB_USER, DB_PASS, DB_NAME);
}
catch(ConnectException $exception)
{
echo "Database Connection Error:<br />";
var_dump($exception->getMessage());
}
$action = (isset($_GET['action']) ? $_GET['action'] : '');
switch($action)
{
// add item to cart
case 'addToCart':
$id = $db->real_escape_string($_POST['id']);
// get item's details
$sql = "SELECT short_name, sale_price_euro
FROM suppliers
WHERE intern_cat_num = '$id'";
$result = $db->query($sql);
$row = $result->fetch_assoc();
// initialize the cart and add the item (quantity = 1)
$Cart = new Cart(session_id());
$added = $Cart->AddItem($id, 1, $row['sale_price_euro']);
// if this was an Ajax call, return JSON, else redirect to previous page
if (isAjax())
{
if ($added['newItem'] == 1)
$isNew = 1;
else
$isNew = 0;
$subTotal = moneyFormat($Cart->GetSubTotal($id));
$total = moneyFormat($Cart->GetTotal());
$response = '{ "cartItemDetails" : [
{ "title" : "' . $row['short_name'] . '",
"id" : "' . $id .'",
"newPrice" : "'. $subTotal . '",
"newQty" : "' . $added['qty'] . '",
"total" : "' . $total . '",
"isNew" : "' . $isNew . '" } ]}';
echo $response;
}
else
{
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
$result->close();
break;
// remove item from cart
case 'removeFromCart':
$id = (isset($_GET['id']) ? $_GET['id'] : $_POST['id']);
$id = $db->real_escape_string($id);
// initialize the cart and remove the specified item
$Cart = new Cart(session_id());
$removed = $Cart->RemoveItem($id);
// if this was an Ajax call, return the cart's total value, else redirect to previous page
if (isAjax())
{
echo moneyFormat($Cart->GetTotal());
}
else
{
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
break;
// empty cart
case 'emptyCart':
// initialize the cart and empty it
$Cart = new Cart(session_id());
$empty = $Cart->Clear();
// if this was an Ajax call, return true, else redirect to previous page
if (isAjax())
{
echo $empty;
}
else
{
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
break;
}
?>
Ik weet nu niet hoe ik de code in server.php aanpas zodat het doet wat ik zograag wil ....... weet iemand raad hierbij alle hulp is bruikbaar
in afwachting op jullie reacties tot spoed
Gewijzigd op 01/01/1970 01:00:00 door Malick heuvel
Gewijzigd op 01/01/1970 01:00:00 door malick heuvel
Bumpen mag nog niet
hey jacco als ik een foutje maak hoe kan ik dan mijn bumpmessage verwijderen
Ik snap eigenlijk niet hoe het kan dat het je wel lukt om + 1 te doen in het textveld, maar -1 niet. Dat is toch eigenlijk helemaal hetzelfde, maar in plaats van + gebruik je -?
Moet de functie dus gewoon aanpassen -1 i.p.v 1 je hebt gelijk maar hoe zit het met die andere functie een field voor het aanpassen van de gehele quantity ?
Gewijzigd op 01/01/1970 01:00:00 door malick heuvel
Oftewel: Veldwaarde = nieuwe ingevulde quantity. Met alles wat je nu al hebt gemaakt moet dat een eitje zijn toch?
(ik ben wel al even in de code gedoken, maar heb niet veel tijd op het moment om je verder te helpen. Maar misschien dat dit een zetje in de goede richting is)