I want to display results of the calculation at the end of the program as a list. After each post, the result is added to the list of previous results.
Simply, I want to display a history of the result of the calculations done.
<form method="post" >
<p>A:<input value="<?php echo $_POST['num1']?>" min="0" max="1000" type="number" name="num1"></p>
<p>B:<input value="<?php echo $_POST['num2']?>" min="0" max="1000" type="number" name="num2"></p>
<p>
<select name="op">
<option value="jaam">+</option>
<option value="zarb">*</option>
<option value="taghtsim">/</option>
<option value="tafrigh">-</option>
</select>
</p>
<input type="submit" name="">
<hr>
</form>
<?php
if (isset($_POST['num1']) && isset($_POST['num2']) && isset($_POST['op']))
{
switch ($_POST['op'])
{
case 'jaam':
$r = $_POST['num1'] + $_POST['num2'];
break;
case 'zarb':
$r = $_POST['num1'] * $_POST['num2'];
break;
case 'taghtsim':
$r = $_POST['num1'] / $_POST['num2'];
break;
case 'tafrigh':
$r = $_POST['num1'] - $_POST['num2'];
break;
default:
$r = "Error!";
break;
}
}
?>
Related
I'm trying to make a simple php calculator which multiplies quantity to predefined prices.
Here is my code but I got error 500. I can't manage to fix it by myself.
It's html form with $_post checks and $_post submit button
// Check if form was submitted
$product = $_POST['product'];
$quantity = $_POST['quantity'];
$first = 0,6;
$second = 0,5;
$third = 2,8;
if ( isset($_POST['submit']) ) {
switch($_POST['product']) {
case '1':
$calculation = $quantity * $first;
echo "Цена" . $calculation;
break;
case '2':
$calculation = $quantity * $second;
echo "Цена" . $calculation;
break;
case '3':
$calculation = $quantity * $third;
echo "Цена" . $calculation;
break;
default:
}
}
?>
<form action="" method="post">
<select name="product" id="product">
<option>Choose servicve</option>
<option value="1">Service 1</option>
<option value="2">Service 2</option>
<option value="3">Service 3</option>
</select>
<br>
<input type="number" name="quantity" id="quantity">
<br>
<input type="submit" name="submit" value="submit">
</form><br /> ```
Just simple mistake for simple calculator, you printed "," instead of point(".")
$first = 0,6;
$second = 0,5;
$third = 2,8;
The code will not produce a calculated result for me.. can anyone help me?
The HTML displays properly, I can input the constants, they are updated in the URL. The PHP GET function seems to be working but not producing any results on the page.
<form>
<input type="text" name="num1" placeholder="Constant">
<input type="text" name="num2" placeholder="Constant">
<select name="Operator">
<option>Select Option</option>
<option>Add</option>
<option>Subtract</option>
<option>Multiply</option>
<option>Divide</option>
</select>
<br>
<br>
<button type="Submit" name="Submit" value="Submit">Calculate</button>
</form>
<p>The answer is: </p>
if (isset($_GET['Submit'])) {
$result1 = $_GET['num1'];
$result2 = $_GET['num2'];
$operator = $_GET['Operator'];
switch ($operator) {
case 'Select Option':
echo "Error";
break;
case 'Add':
echo $result1 + $result2;
break;
case 'Subtract':
echo $result1 - $result2;
break;
case 'Multiply':
echo $result1 * $result2;
break;
case 'Divide':
echo $result1 / $result2;
break;
}}
Here is my form
<form>
<input type="text" name="num1" placeholder="Digets">
<input type="text" name="num2" placeholder="Digets">
<select name="operator">
<option>Add</option>
<option>Subtract</option>
<option>Multiply</option>
<option>Divide</option>
</select>
<button type="submit" value="submit" name="submit">Check for the answer</button>
<p>Your answer is : </p>
</form>
<?php
if (isset($_GET['$submit'])){
$result1 = $_GET['$num1'];
$result2 = $_GET['$num2'];
$operator = $_GET['$operator'];
switch ('$operator'){
case "Add":
echo $result1 + $result2;
break;
case "Subtract":
echo $result1 - $result2;
break;
case "Multiply":
echo $result1 * $result2;
break;
case "Divide":
echo $result1 / $result2;
break;
}
}
?>
When i click on the calculate button I don't see an answer and i tried fixing all my bugs but it seems to me as if their is something wrong with the switch.
Try this:-
you are making some mistake while getting values and switch parameter.
like you are geetting value $_GET['$num1'] instead you need to use $_GET['num1']
as you just need to pass variable switch ($operator) instead switch ('$operator') of quotation mark.
<?php
if (isset($_GET['submit'])){
$result1 = $_GET['num1'];
$result2 = $_GET['num2'];
$operator = $_GET['operator'];
switch ($operator){
case 'Add':
$FResult =$result1 + $result2;
echo "Result:"+ $FResult ;
break;
case 'Subtract':
$FResult =$result1 - $result2;
echo "Result:"+ $FResult ;
break;
case 'Multiply':
$FResult =$result1 * $result2;
echo "Result:"+ $FResult ;
break;
case 'Divide':
$FResult =$result1 / $result2;
echo "Result:"+ $FResult ;
break;
default :
echo "wrong";
}
}
?>
The mistake you have made:
1). You are passing variable directly into get element i.e, it should be like $_GET['submit'] instead of $_GET['$submit'];
2). You are passing string instead of variable i.e, switch ('$operator') should be switch ($operator)
check it out where you have made mistake
<form method="GET" action="">
<input type="text" name="num1" placeholder="Digets">
<input type="text" name="num2" placeholder="Digets">
<select name="operator">
<option>Add</option>
<option>Subtract</option>
<option>Multiply</option>
<option>Divide</option>
</select>
<button type="submit" value="submit" name="submit">Check for the answer</button>
<p>Your answer is : </p>
</form>
<?php
if (isset($_GET['submit'])){
$result1 = $_GET['num1'];
$result2 = $_GET['num2'];
$operator = $_GET['operator'];
switch ($operator){
case "Add":
echo $result1 + $result2;
break;
case "Subtract":
echo $result1 - $result2;
break;
case "Multiply":
echo $result1 * $result2;
break;
case "Divide":
echo $result1 / $result2;
break;
}
}
?>
You were looking for PHP solution, here is one:-
<?php
if (isset($_POST['submit'])){
$result1 = $_POST['num1'];
$result2 = $_POST['num2'];
$operator = $_POST['operator'];
switch($operator){
case "Add":
$res = +$result1 + +$result2;
break;
case "Subtract":
$res = +$result1 - +$result2;
break;
case "Multiply":
$res = +$result1 * +$result2;
break;
case "Divide":
$res = +$result1 / +$result2;
break;
}
}
?>
<form method="post" action="">
<input type="text" name="num1" id="num1" placeholder="Digets">
<input type="text" name="num2" id="num2" placeholder="Digets">
<select name="operator" id="operator">
<option value="Add">Add</option>
<option value="Subtract">Subtract</option>
<option value="Multiply">Multiply</option>
<option value="Divide">Divide</option>
</select>
<input type="submit" name="submit" id="submit" value="Calculate" />
<p>Your answer is : <input name="res" value="<?php echo $res; ?>"></p>
</form>
This is what you were looking for .
<form>
<input type="number" name="num1" placeholder="Digets">
<input type="number" name="num2" placeholder="Digets">
<select name="operator">
<option value="+">Add</option>
<option value="-">Subtract</option>
<option value="*">Multiply</option>
<option value="/">Divide</option>
</select>
<button type="submit" value="submit" name="submit">Check for the answer</button>
<p>Your answer is : </p>
</form>
<?php
if (isset($_REQUEST['submit'])){
$result1 = $_REQUEST['num1'];
$result2 = $_REQUEST['num2'];
$operator = $_REQUEST['operator'];
$res = $result1.$operator.$result2;
$p = eval('return '.$res.';');
print $p;
}
?>
<form>
<input type="number" name="num1" placeholder="Digets">
<input type="number" name="num2" placeholder="Digets">
<select name="operator">
<option>Add</option>
<option>Subtract</option>
<option>Multiply</option>
<option>Divide</option>
</select>
<button type="submit" value="submit" name="submit">Check for the answer</button>
<p>Your answer is : </p>
</form>
<?php
if (isset($_REQUEST['submit'])){
$result1 = $_REQUEST['num1'];
$result2 = $_REQUEST['num2'];
$operator = $_REQUEST['operator'];
switch ($operator){
case "Add":
echo $result1 + $result2;
break;
case "Subtract":
echo $result1 - $result2;
break;
case "Multiply":
echo $result1 * $result2;
break;
case "Divide":
echo $result1 / $result2;
break;
}
}
?>
Another way:
<form>
<input type="number" name="num1" placeholder="Digets">
<input type="number" name="num2" placeholder="Digets">
<select name="operator">
<option value="+">Add</option>
<option value="-">Subtract</option>
<option value="*">Multiply</option>
<option value="/">Divide</option>
</select>
<button type="submit" value="submit" name="submit">Check for the answer</button>
<p>Your answer is : </p>
</form>
<?php
if (isset($_REQUEST['submit'])){
$result1 = $_REQUEST['num1'];
$result2 = $_REQUEST['num2'];
$operator = $_REQUEST['operator'];
$res = $result1.$operator.$result2;
$p = eval('return '.$res.';');
print $p;
}
?>
You should set option value in select tag (operator which you want for calculator) <option value="">.
change you input type="text" into type="number"
<form method="GET">
<input type="number" name="num1">
<input type="number" name="num2">
<select name="operator">
<option value='+'>Add</option>
<option value='-'>Subtract</option>
<option value='*'>Multiply</option>
<option value='/'>Divide</option>
</select>
<button type="submit" value="submit" name="submit">calculate</button>
<p>Answer :</p>
</form>
<?php
if (isset($_GET['submit'])){
$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
$operator = $_GET['operator'];
switch ($operator){
case "+":
echo $num1 + $num2;
break;
case "-":
echo $num1 - $num2;
break;
case "*":
echo $num1 * $num2;
break;
case "/":
echo $num1 / $num2;
break;
}
}
?>
what you have done is that you are calculating it in the back-end and the form is refreshing the page , but not displaying the result anywhere on the page . Its better to do with a JQuery so that result will come instantly without page refresh . Just check the code below:-
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$(document).ready(function(){
$("#submit").on('click', function(){
var num1 = $("#num1").val() ;
var num2 = $("#num2").val() ;
var operator = $("#operator").val() ;
var result = 0 ;
switch(operator){
case "Add":
result = +num1 + +num2 ;
document.getElementById("res").innerHTML = result ;
break ;
case "Subtract":
result = +num1 - +num2 ;
document.getElementById("res").innerHTML = result ;
break ;
case "Multiply":
result = +num1 * +num2 ;
document.getElementById("res").innerHTML = result ;
break ;
case "Divide":
result = +num1 / +num2 ;
document.getElementById("res").innerHTML = result ;
break ;
}
});
});
</script>
<div>
<input type="text" name="num1" id="num1" placeholder="Digets">
<input type="text" name="num2" id="num2" placeholder="Digets">
<select name="operator" id="operator">
<option value="Add">Add</option>
<option value="Subtract">Subtract</option>
<option value="Multiply">Multiply</option>
<option value="Divide">Divide</option>
</select>
<button name="submit" id="submit">Check for the answer</button>
<p>Your answer is : <span id="res"></span></p>
</div>
This is running successfully .
Hello i'm trying to make a calculator.And i have this problem : I'm tryng to make the selection that i made it to stay after submit. I've found some code on google for my selection to stay after submit but my calculator won't work anymore. Can you help me ?
here is the code when my calculator works but my selection doesn"t stays after submit
<html>
<body>
<center>
<form method="post">
Food:
<Select name="Dropdown"><br>
<option>Cheese</option>
<option>Apple</option>
<option>Egg</option>
</select>
</br>
Amount:
<input name="amount" type="text">grams<br><br>
<br><input type="Submit" value="Calculate">
<br><br>
<?php
$result=$_POST['result'];
$Dropdown=$_POST['Dropdown'];
$amount = $_POST['amount'];
switch ($Dropdown){
case 'Cheese':
$result= (7.74 * $amount) / 100;
echo "<p> $result </p>";
break;
case 'Apple':
$result= (1.94 * $amount) / 100;
echo "<p> $result </p>";
break;
case 'Egg':
$result= (13.74 * $amount) / 100;
echo "<p> $result </p>";
}
?>
</form>
</center>
</body>
</html>
and here is my code when my slection stays after submit but my calculator won't work
<html>
<head></head>
<body>
<center>
<?php
if (!empty($_POST['Dropdown'])) {
$dropDownVal = $_POST['Dropdown'];
} else {
$dropDownVal = 1;
}
?>
<form method="post">
<select name="Dropdown" >
<option value="1" <?php if ($dropDownVal==1) echo 'selected="selected"'; ?>>Cheese </option>
<option value="2" <?php if ($dropDownVal==2) echo 'selected="selected"'; ?>>Apple</option>
<option value="3" <?php if ($dropDownVal==3) echo 'selected="selected"'; ?>>Egg</option>
</select>
<?php
$result=$_POST['result'];
$Dropdown=$_POST['Dropdown'];
$amount = $_POST['amount'];
switch ($Dropdown){
case 'Cheese':
$result= (7.74 * $amount) / 100;
echo "<p> $result </p>";
break;
case 'Apple':
$result= (1.94 * $amount) / 100;
echo "<p> $result </p>";
break;
case 'Egg':
$result= (13.74 * $amount) / 100;
echo "<p> $result </p>";
}
?>
<input name="amount" type="text">grams<br><br>
<br><input type="Submit" value="Calculate">
</form>
</center>
</body>
</html>
Thanks
What you receive back in the $_POST['Dropdown'] is the value not the content so you will get 1 or 2 or 3 and not the Cheese or Apple or Egg.
So try:
switch ($Dropdown){
case 1: // Cheese
$result= (7.74 * $amount) / 100;
break;
case 2: //Apple
$result= (1.94 * $amount) / 100;
break;
case 3: // Egg
$result= (13.74 * $amount) / 100;
break;
default:
$result = 0;
}
echo "<p> $result </p>";
?>
In future if you are not sure what is in a variable that is returned from the user do a
echo '<pre>' . print_r( $_POST, TRUE ) . '</pre>';
to get a nice display of the array on the browser.
Or a
var_dump( $var );
I've recently started the assignment of building a calculator out of PHP and I can't seem to find what I'm doing wrong in my code. Every time I press calculate it doesn't give me back my solution.
<?php
$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
$cal = $_GET['opt'];
if($num2, $num2 != (int)){
$num1=0;
$num2=0;
}
switch($cal) {
case 'add':
echo $num1+$num2;
break;
case 'sub':
echo $num1-$num2;
break;
case 'mul':
echo $num1*$num2;
break;
case 'div':
echo $num1/$num2;
break;
default:
echo "Invalid Operator";
}
?>
Here is the HTML
<form action="calculate.php" method="GET"/>
Number 1:<input type="text" name="num1"/>
<br />
<select>
<option type="text" name="opt" value="add"> + </option>
<option type="text" name="opt" value="sub"> - </option>
<option type="text" name="opt" value="mul"> * </option>
<option type="text" name="opt" value="div"> / </option>
</select>
<br />
Number 2:<input type="text" name="num2"/>
<br />
<input type="submit" value="calculate"/>
</form>
if($num2, $num2 != (int)) looks like a syntax error to me (the comma).
You just say it doesn't work, are you getting an error message? Have you made sure error reporting is on and displaying errors to your browser? I think it should tell you about the syntax error.
try :
$num1 = intval($_GET['num1']);
$num2 = intval($_GET['num2']);
and remove
if($num2, $num2 != (int)){
$num1=0;
$num2=0;
}
I would initialise the var differently:
<?php
$num1 = $num2 = 0;
if (isset($_GET['num1']) && isset($_GET['num1']) && isset($_GET['num1']))
{
$num1 = $_GET['num1'];
$num2 = $_GET['num2'];
// edit: added validation
if (!is_numeric($num1) || !is_numeric($num2))
{
$res = NULL;
}
else
{
$cal = $_GET['opt'];
switch($cal)
{
case 'add':
$res = $num1+$num2;
break;
case 'sub':
$res = $num1-$num2;
break;
case 'mul':
$res = $num1*$num2;
break;
case 'div':
$res = $num1/$num2;
break;
default:
$res = NULL;
}
}
}
// display html on the same file
?>
<html>
<body>
<form action="calculate.php" method="GET"/>
Number 1:<input type="text" name="num1"/>
<br />
<select>
<option type="text" name="opt" value="add"> + </option>
<option type="text" name="opt" value="sub"> - </option>
<option type="text" name="opt" value="mul"> * </option>
<option type="text" name="opt" value="div"> / </option>
</select>
<br />
Number 2:<input type="text" name="num2"/>
<br />
<input type="submit" value="calculate"/>
</form>
<? if (isset($res) && $res != NULL): ?>
<span class="result-label">Result:</span> <span class="result"><?=$res?></span>
<? endif ?>
</body>
</html>
This is wrong
if($num2, $num2 != (int)){
$num1=0;
$num2=0;
}
try
$num1 = intval( $num1 );
$num2 = intval( $num2 );