我正在用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>
我没有将所有数字都放在计算器中用于发布目的
答案 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 强>
显然是最简单的方法。由于将维护状态,因此您无需来回传递值。