我是php新手,正在try 使用按钮制作计算器.我只想在用户按=按钮时显示结果.

代码如下:


<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;
            }


?>

Issue

推荐答案

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

Step1:添加隐藏输入

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

Step2:使用javascript更新隐藏文本框中的值

function operators(op){
if(op == '+'|| op == '-' || op == '*' || op == '/')
{
    opr=op;
    document.getElementById('hidden').value=op;
}
}

Step 3:使用此输入字段,后分配值

<?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;
            }


?>

Credits:@Ken Lee

Php相关问答推荐

当我们使用PHPUnit时,控制台中的--uses param到底起了什么作用以及如何使用?

Msgraph-sdk-php v2如何从返回对象中获取数据?

Symfony Api平台:按自定义实体方式排序结果

如何删除WordPress用户的个人资料描述或其他个人资料字段中的链接?

根据产品类型显示或隐藏WooCommerce管理产品自定义字段

在PHP项目中安装OpenAI PHP SDK时出现问题

shell_exec运行大型数据处理

在WooCommerce购物车页面应用优惠券不会';t刷新总计

服务器升级到新的mysql版本8.0.34后查询错误

如果在 APIPlatform 3.1 中的同一资源上使用处理器,Messenger 将无法工作

如何在 PHP 中对具有相同数组值的值求和

Laravel 添加到经过身份验证的用户的数据将应用于每个查询

如何获得没有运输等级的产品

在WooCommerce单产品页面中显示特价产品的节省金额

在 Symfony 测试中何时使用 TestCase 而不是 KernelTestCase

Shopware 6:无法在新的自定义插件中保存关联字段(媒体)

为什么 8.0 之前的 PHP 版本拒绝命名空间Random\Namespace作为无效语法?

Laravel 10 单元测试看不到来自 Artisan Command 的数据库更改

使用循环和引用而不是递归创建分层/父子数组

try 在 Laravel Blade 上显示值时出现未定义的变量 X 问题