So I am working on an assignment where I have to make a pizza order. Im new to PHP and am struggling to get my math to work. So this is my HTML
<!doctype html>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<meta http-equiv="expires" content="0" />
<html lang="en">
<head>
<title> HW05 </title>
<link rel="stylesheet" href="hw05.css">
</head>
<body>
<form method="post" action="hw05.php">
<header>
<h1 id="title">
Pizza Order
</h1>
</header>
<section id="ci">
<h2 id="ciheader">
Customer Information
</h2>
<p id="text">
Name: <input type="text" name="name" size="15" /> <br /><br />
Phone: <input type="text" name="number" size="15" /> <br /> <br />
<input type="submit" value="Order" />
</p>
</section>
<section id="size">
<h2 id="sizeheader">
Pizze Size
</h2>
<p id="radio">
<input type="radio" name="size1" value="small"> Small <br />
<input type="radio" name="size2" value="medium"> Medium <br />
<input type="radio" name="size3" value="large"> Large
</p>
</section>
<section id="top">
<h2 id="topheader">
Toppings
</h2>
<p id="checkbox">
<input type="checkbox" name="checkbox1" value="box"> Pepperoni <br />
<input type="checkbox" name="checkbox2" value="box"> Sausage <br />
<input type="checkbox" name="checkbox3" value="box"> Mushroom <br />
<input type="checkbox" name="checkbox4" value="box"> Ham <br />
<input type="checkbox" name="checkbox5" value="box"> Olives <br />
<input type="checkbox" name="checkbox6" value="box"> Onions
</p>
</section>
<section id="price">
<h2 id="priceheader">
Topping Price
</h2>
<p id="dollars">
$1.00 <br />
$1.50 <br />
$0.80 <br />
$1.25 <br />
$0.75 <br />
$0.50
</p>
</section>
</form>
</body>
</html>
So from the HTML I need to create a PHP page that counts the number of toppings and adds the total cost of the size and the toppings together. I can not figure out how to make the PHP add the cost of each topping and the cost of the pizza size together. I was able to get the PHP to count the toppings though. Any help would be great thanks.
You could do something like:
<input type="checkbox" name="topping[]" value="pepperoni"> Pepperoni <br />
<input type="checkbox" name="topping[]" value="sausage"> Sausage <br />
<input type="checkbox" name="topping[]" value="mushroom"> Mushroom <br />
<input type="checkbox" name="topping[]" value="ham"> Ham <br />
<input type="checkbox" name="topping[]" value="olives"> Olives <br />
<input type="checkbox" name="topping[]" value="onions"> Onions
In your hw05.php
file:
$toppingToPriceMap = [
"pepperoni" => 1,
"sausage" => 0.8,
"mushroom" => 1.25,
"ham" => 0.75,
"olives" => 0.5,
"onions" => 0.75
];
if (isset($_POST["topping"]) {
$numberOfToppings = count($_POST["topping"]);
$cost = 0;
foreach ($_POST["topping"] as $topping) {
if (isset($toppingToPriceMap[$topping])) {
$cost += $toppingToPriceMap[$topping];
}
}
}
echo "Selected $numberOfToppings toppings at a cost of $".$cost;
Note: This is just one of the fixes that your code requires.
Depends of how you get the value of Topping Price, however you can try to create variable for each number using $ and add them.
From the html
perspective you should consider doing the following changes:
<p id="radio">
<input type="radio" name="size" value="small"> Small <br />
<input type="radio" name="size" value="medium"> Medium <br />
<input type="radio" name="size" value="large"> Large
</p>
Note that the name
attribute is size for all 3 options so that the user can choose one of the 3.
For the checkboxes you will want to do something similar, the only difference is that for that one you will want to store the options in an array.
<p id="checkbox">
<input type="checkbox" name="checkbox1" value="1"> Pepperoni <br />
<input type="checkbox" name="checkbox[]" value="2"> Sausage <br />
<input type="checkbox" name="checkbox[]" value="3"> Mushroom <br />
<input type="checkbox" name="checkbox[]" value="4"> Ham <br />
<input type="checkbox" name="checkbox[]" value="5"> Olives <br />
<input type="checkbox" name="checkbox[]" value="6"> Onions
</p>
The rest should happen in hw05.php
which you didn't provided for us.
The code is simple enough. You need to check to see if the vars exist and then check the values. So something like is..
$addonCost =0;
if (isset($_POST['checkbox1'])) {
if ($_POST['checkbox1'] == "box") {
$addonCost += 1; // adding $1.00
}
}