PHP 使用按钮的计算器给出了错误的结果

PHP Calculator Using Buttons Giving Wrong Result

我是 php 的新手,正在尝试使用按钮制作计算器。我只想在用户按下 = 按钮时显示结果。

代码如下:


<td><input type="text" name="calbtn0" onclick="operators('+');"
class="btn" id="add-btn" value="+"></td>
<td><input type="text" id="sub-btn" onclick="operators('-');"
class="btn" name="calbtn1" value="-"></td>
<td><input type="text" id="mult-btn" onclick="operators('*')"
class="btn" name="calbtn2" value="*"></td>
<td><input type="text" id="divid-btn" onclick="operators('/')"
class="btn" name="calbtn3" value="/"></td>


<td rowspan="4" class="equal-btn">
    <input type="submit" id="equal-btn" class="btn" name="equal-btn" 
    value="=">
</td>

target.php

<?php
    $result = 0;

        $num1 = $_POST['calculator-input1'];
        $num2 = $_POST['calculator-input2'];
        
        $opr1 = $_POST['calbtn0'];
            if($opr1 == '+')
            {
                $result = intval($num1) + intval($num2);
                echo $result;
                

            }
        $opr2 = $_POST['calbtn1'];
            if($opr2 == '-')
            {
                $result = intval($num1) - intval($num2);
                echo $result;
                
                
            }
        $opr3 = $_POST['calbtn2'];
            if($opr3 == '*')
            {
                $result = intval($num1) * intval($num2);
                echo $result;
            }
        $opr4 = $_POST['calbtn3'];
            if($opr4 == '/')
            {
                $result = intval($num1) / intval($num2);
                echo $result;
            }


?>

问题 我面临的问题是(假设我想用 num2 减去 num1)而不是执行减法或任何特定操作,它执行所有算术运算(+、-、*、/)。我想我在 PHP.

中犯了一些错误

通过在单击(+、-、* 或 /)时更新隐藏的输入字段,然后使用此输入字段 post 值对表单提交进行适当的数学运算。这是解决这个问题的方法之一。

步骤 1: 添加隐藏输入

<input type="hidden" name="hidden" id="hidden" value="">

步骤 2: 使用 javascript

更新隐藏文本框中的值
function operators(op){
if(op == '+'|| op == '-' || op == '*' || op == '/')
{
    opr=op;
    document.getElementById('hidden').value=op;
}
}

第 3 步: 使用此输入字段,Post 适当的值

<?php
    $result = 0;

        $num1 = $_POST['calculator-input1'];
        $num2 = $_POST['calculator-input2'];
        
        $opr1 = $_POST['hidden'];
            if($opr1 == '+')
            {
                $result = intval($num1) + intval($num2);
                echo $result;

            }
        $opr2 = $_POST['hidden'];
            if($opr2 == '-')
            {
                $result = intval($num1) - intval($num2);
                echo $result;

            }
        $opr3 = $_POST['hidden'];
            if($opr3 == '*')
            {
                $result = intval($num1) * intval($num2);
                echo $result;
            }
        $opr4 = $_POST['hidden'];
            if($opr4 == '/')
            {
                $result = intval($num1) / intval($num2);
                echo $result;
            }


?>

致谢: @Ken Lee