bullbreed Posted March 29, 2010 Share Posted March 29, 2010 Hi Guys I have a page on my website that enables a customer to select a product, choose a colour and a size, create some custom text then send that data to my cart.php page. I'm not sure if I am doing this the correct way and haven't done a cart before. This form collects the data then posts it to the cart.php page <form action="cart.php" method="POST"> <input type="hidden" name="category" id="category" value="<?php echo $_GET['cid']; ?>" /> <input type="hidden" name="name" id="name" value="<?php echo $_GET['nid']; ?>" /> <input type="hidden" name="colour" id="colour" value="<?php echo $_GET['colid']; ?>" /> <input type="hidden" name="input" id="input" value="<?php echo $_POST['input']; ?>" /> <input type="hidden" name="fontselect" id="fontselect" value="<?php echo $_POST['fontselect']; ?>" /> <input type="hidden" name="sizeselect" id="sizeselect" value="<?php echo $_POST['sizeselect']; ?>" /> <div class="textinputgo"><input name="cart" type="submit" id="cart" value="Add to Cart" /></div> </form> This is the cart.php page which displays the product selections on the page; ( I have used tables for now but will change these to divs.) <h1>Shopping Cart</h1> <?php $submit = ($_POST['cart']); if (!isset($submit)){ echo 'Your cart is empty'; }else { //Form data $category = ($_POST['category']); $name = ($_POST['name']); $colour = ($_POST['colour']); $text = ($_POST['input']); $font = ($_POST['fontselect']); $size = ($_POST['sizeselect']); if (isset($submit)){ // This page displays the contents of the shopping cart. // Create a table and a form. echo '<table border="1" width="90%" cellspacing="3" cellpadding="3" align="left"> <tr> <td align="left" width="15%"><b>Category</b></td> <td align="left" width="15%"><b>Name</b></td> <td align="left" width="15%"><b>Colour</b></td> <td align="left" width="15%"><b>Text</b></td> <td align="left" width="10%"><b>Font</b></td> <td align="left" width="15%"><b>Size</b></td> </tr> '; echo '<tr>'; echo '<td align="left">' . $category . '</td>'; echo '<td align="left">' . $name . '</td>'; echo '<td align="left">' . $colour . '</td>'; echo '<td align="left">' . $text . '</td>'; echo '<td align="left">' . $font . '</td>'; echo '<td align="left">' . $size . '</td>'; echo '</tr>'; echo '</table>'; } } ?> My questions are; 1. How do I add the facility to increse the quantity of the products on the cart.php page? 2. If I go to another page then click on cart again the cart is empty so how do I keep the info in the cart? I'm assuming some sort of session but dont know how to do these. Thanks guyz Quote Link to comment https://forums.phpfreaks.com/topic/196906-add-to-cart-functions/ Share on other sites More sharing options...
ignace Posted March 29, 2010 Share Posted March 29, 2010 1. How do I add the facility to increse the quantity of the products on the cart.php page? name="products[$ID]" then when the user presses UPDATE you go over each item and check if the quantity has changed if it did then modify it in your database. 2. If I go to another page then click on cart again the cart is empty so how do I keep the info in the cart? I'm assuming some sort of session but dont know how to do these. $_SESSION['cart_namespace'][$productID] = $row; Quote Link to comment https://forums.phpfreaks.com/topic/196906-add-to-cart-functions/#findComment-1033762 Share on other sites More sharing options...
bullbreed Posted March 29, 2010 Author Share Posted March 29, 2010 I'm sorry but im very new to php and dont understand :-\ Could you explain a little more please Quote Link to comment https://forums.phpfreaks.com/topic/196906-add-to-cart-functions/#findComment-1033783 Share on other sites More sharing options...
ignace Posted March 30, 2010 Share Posted March 30, 2010 $result = mysql_query("SELECT * FROM cart WHERE session_id = $sid OR user_id = $uid"); $products = array(); while ($row = mysql_fetch_assoc($result)) { $products[$row['id']] = $row; echo '<input type="text" name="product[', $row['id'], ']" value="', $row['quantity'], '">'; } //.. if (isset($_POST['product']) && is_array($_POST['product'])) { foreach ($_POST['product'] as $id => $quantity) { $id = intval($id); $quantity = intval($quantity); if (isset($products[$id])) { if ($quantity <= 0) { mysql_query("DELETE FROM table WHERE user_id = $uid AND id = $id"); } else if ($quantity != $products[$id]['quantity']) { mysql_query("UPDATE table SET quantity = $quantity WHERE id = $id"); } } } } Quote Link to comment https://forums.phpfreaks.com/topic/196906-add-to-cart-functions/#findComment-1034114 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.