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
我是 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