使用按钮计算PHP中的值

时间:2012-06-17 02:05:31

标签: php forms button

我正在用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>

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

由于这是一本书练习,而且你要编写代码,我不打算给你任何代码。但是,我可以指出你正确的方向(或至少其中一个)。

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

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

需要考虑的更多事项:尝试使用真正的计算器。结果何时显示?使用的操作顺序是什么?每个操作都有左手侧和右手侧。连续推送多个数字时会发生什么。小数点怎么样?应该有一个清晰的按钮吗?

答案 2 :(得分:0)

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

隐藏的表单元素

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

有关示例,请参阅this page

<强>缓存

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

这个tizag tutorial就是你想要用cookies做的一个很好的例子。

<强>的Javascript

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