Search code examples
phphtmlmathcalculatoroperation

a very simple php calculator that would not perform math operation :(


I am trying to create a simple calculator (this is probably superrrr simple but couldn't find the mistake :( sigh* ), so when I hit submit that number 1 and number 2 will perform the operation that the user selected. But the answer won't echo when submitted :( What is the problem? Thank you so much!

<?php
if ($_POST['subBtn']) { 
$number1 = $_POST['number1'];
$number2 = $_POST['number2'];

if($_POST['group1'] == 'add') {
echo $number1 + $number2 = $answer;
}
else if($_POST['group1'] == 'subtract') {
echo $number1 - $number2 = $answer;
}
else if($_POST['group1'] == 'times') {
echo $number1 * $num2ber = $answer;
} 
else if($_POST['group1'] == 'divide') {
echo $number2 / $number2 = $answer;

echo "<p>" . $answer . " </p>"; 
}
}
?>

<form name="number1" action="activity-2-4.php" method="post">
number1:<select name="number1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
        </select><br>

number2:<select name="number2">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
        </select><br>
<input type="radio" name="group1" id="add" value="add">+<br/>
<input type="radio" name="group1" id="subtract" value="subtract">-<br/>
<input type="radio" name="group1" id="times" value="times">x<br/>
<input type="radio" name="group1" id="divide" value="divide">/<br/>
<button type="submit" name="subBtn" id="answer" value="answer">Calculate</button>
</form>

Solution

  • Don't assign values to variables in an echo statement. Moreover, the variable the value is being assigned to, should always be on the left. In addition, your echo was inside the last elseif from the divide.

    Try this instead:

    <?php
    if (isset($_POST['subBtn']) && isset($_POST['group1'])) { 
        $number1 = isset($_POST['number1']) ? $_POST['number1'] : 0;
        $number2 = isset($_POST['number2']) ? $_POST['number2'] : 0;
    
        switch ($_POST['group1']) {
            case 'add':
                $answer = $number1 + $number2;
                break;
            case 'subtract':
                $answer = $number1 - $number2;
                break;
            case 'times':
                $answer = $number1 * $number2;
                break;
            case 'divide':
                $answer = $number2 / $number2;
                break;
            default:
                $answer = 'No operation method selected.';
                break;
        }
    
        echo "<p>" . $answer . " </p>";
    }
    ?>