0

我正在用 PHP 创建一个计算器,我的 HTML 应该有这种结构,其中我的数字是可点击的按钮,第一次点击的数字将是第一个值,我点击的第二个数字将是第二个值. 我不知道它会如何工作,这可能吗?如果是这样,这是我的代码

<html>
    <head>
        <title>Calculator</title>
    </head>
        <body>
            <div id = "structure">
            <?php
                if(isset($_GET)){
                    $value += $_GET;
                }
            ?>
                <form method = "GET " action = "calculator.php">
                    <input type = "submit" name = "one" value = 1>
                    <input type = "submit" name = "two" value = 2>
                    <input type = "submit" name = "three" value = 3>
                    <input type = "submit" name = "operand" value = "+">
                    </br>
                    <input type = "submit" name = "four" value = 4>
                    <input type = "submit" name = "five" value = 5>
                    <input type = "submit" name = "six" value = 6>
                    <input type = "submit" name = "operand" value = "-">
                    </br>
                </form>
            </div>
        </body>
</html>

我没有将所有数字都放在计算器中以用于发布目的

4

3 回答 3

0

正如其他人提到的,最好的方法是使用客户端编码(Javascript)。但是,如果您必须编写 PHP 代码,则需要提交两次表单。第一次,将输入变量(第一个数字)放在表单的隐藏输入元素中,这次使用额外的隐藏输入元素再次打印 html。第二次,寻找隐藏的输入值:如果存在,则意味着新输入是第二个数字,隐藏输入是第一个数字。获取隐藏输入的值,获取新的数字,将它们相加并显示结果。确保重置隐藏的输入值。

于 2012-06-17T02:13:39.620 回答
0

因为这是一个书本练习,重点是让你编写代码,所以我不会给你任何代码。但是,我可以为您指明正确的方向(或至少其中一个方向)。

考虑使用可以随每个请求发送的某种值,该值存储所有操作的当前累积值。这可能应该显示在某个地方,也应该放在 PHP 能够在表单提交时读取的字段中(提示:你听说过隐藏输入类型吗?)。您将如何跟踪最后一次操作?也许您可以使用这些字段中的另一个来存储操作,直到按下另一个按钮。

您可以使用什么代码来检查表单是否已提交?您如何检查按下了哪个按钮。+如果被推送,将设置哪些值?如果一个号码被推送怎么办?如果连续推送多个数字怎么办?

更多需要考虑的事情:尝试使用真正的计算器。什么时候显示结果?使用什么操作顺序?每个操作都有左手边和右手边。当您连续推动多个数字时会发生什么。小数呢?应该有一个清除按钮吗?

于 2012-06-17T02:14:02.210 回答
0

您需要一种方法来跟踪以前的输入。每次单击按钮时,都会向服务器发送一个带有该信息的请求(in $_GET),但旧的输入不再可用。几种方法:

隐藏的表单元素

每次用户单击时,您都会读取该值并将其以隐藏的表单元素的形式输出回页面。每次您必须使用现有方法读取隐藏元素的值时$_GET,请弄清楚您需要在数学上做什么,然后将旧的东西和新的东西再次保存到隐藏元素中以供下一次输入。

有关示例,请参见此页面。

饼干

您可以使用setcookie用户输入的值设置 cookie。每次用户单击按钮时,您都希望从 cookie 中加载值并附加当前输入。当用户单击=按钮时,您将加载 cookie 数据并解析表达式。您可以更轻松地将表达式的各个部分存储在 cookie 中的某种分隔字符串中,这样您就operand,operator,operand可以轻松地计算结果。点击清除按钮将清除 cookie 的值。

这个tizag 教程是一个很好的例子,说明你想用 cookie 做什么。

Javascript

显然是最简单的方法。由于将保持状态,因此您无需来回传递值。

于 2012-06-17T02:18:45.620 回答