FreshCat Posted July 27, 2014 Share Posted July 27, 2014 So, i need this. I have a input button and, lets say, 2 checkboxes in a form. Form is about ordering items. Button - value-10 "Modern Pen" Checkboxes - value-300 (checkbox1) label-"Galaxy S3" and value-350 (checkbox2) label-"Galaxy S4" When user makes calculation my script need to make the job and say: "Dear user you have selected Modern Pen and Galaxy S4 and it costs 360€." I have this code, and it tells Sum of all selected items (this 360€), but I cant print labels of forms. Can someone tell me the easiest way (with example) of how to use, lets say value="10,ModernPen" in one input button/checkbox or any other way of making it do what i want? What can I do with this code to do what I need? This works, now I need improvement. <form action='order.php' method='post'> <label> <input type='radio' name='Pen' value='10' id='Pen' /> Modern Pen</label> <label> <input type="checkbox" name="Phone[]" value="300" id="Phone" /> Galaxy S3</label> <label> <input type="checkbox" name="Phone[]" value="350" id="Phone" /> Galaxy S4</label> <input type='submit' name='Submit' value="Calculate" /> </form> <?php $pen = $_POST['Pen']; if (!empty($_POST['Phone'])) { $Phone = 0; foreach ($_POST['Phone'] as $value) { $Phone += $value; } } $sum = $pen + $Phone; echo "You Ordered items cost is:<br />"; echo "<div style='clear:both'></div><div class='style'><h3> $sum €</h3></div>"; ?> Please? Any help? Quote Link to comment Share on other sites More sharing options...
ginerjm Posted July 27, 2014 Share Posted July 27, 2014 (edited) Sorry . Don't know what you really want. Try again? Perhaps you need to create array to hold your 'value' possibilities as keys and a sub-array with the desc and cost and then in your php you take the phone[] element and grab it out of the array to get your info.? Edited July 27, 2014 by ginerjm Quote Link to comment Share on other sites More sharing options...
FreshCat Posted July 27, 2014 Author Share Posted July 27, 2014 Yes, It might be a solution. How to implement it, have you the time to show me? Quote Link to comment Share on other sites More sharing options...
CroNiX Posted July 27, 2014 Share Posted July 27, 2014 (edited) This isn't how this is normally done. You never want to have the raw prices in the form. This would allow a user to change the price by manipulating the HTML on the page by using many available browser tools. I could easily change the 350 price for the Galaxy S4 to 1 and submit the form. You'd lose money and I'd get a cheap new phone. Generally, you'd have a db table for products. Something like: id | description | price (and probably more like category ID for things like "phones", "office supplies", "tablets", etc. like: 1 | Pen | 10 2 | Galaxy S3 | 300 3 | Galaxy S4 | 350 etc. When generating your form, you'd query the db and get the values and display them on your form. Something like: <label><input type="checkbox" name="product[]" id="1">Pen</label> <label><input type="checkbox" name="product[]" id="2">Galaxy S3</label> <label><input type="checkbox" name="product[]" id="3">Galaxy S4</label> Then when you submit your form, you'd get the $_POST['product'], which will be an array of the product ID's that they made purchases for. Say they purchsed a pen and the galaxy s3. $products = $_POST['product']; //products = array(1, 2) Using those ID's, you'd again select those items from the DB but only getting the rows where the ID's are the $products SELECT * FROM products WHERE id IN(1,2); which gives you the Pen and Galaxy S3, their price and description. You can now calculate the total, and show the description of each item to the user on the checkout page because you just retrieved those items from the db using only their product ID. It's obviously a bit more complex than that, but hopefully this gives you a better (and more secure) direction to go in. Edited July 27, 2014 by CroNiX Quote Link to comment 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.