【问题标题】:Saving the output of calculation as the new input of a calculator将计算的输出保存为计算器的新输入
【发布时间】:2017-05-13 07:30:59
【问题描述】:

我想用 PHP 做一个计算器。我需要一种将计算结果保存为新的预定义输入的方法。

示例:用户将 5 和 6 相乘,得到的结果为 30。如果他们想将结果相乘,目前需要再次输入 30 并选择所需的操作。

我想保存每个操作的结果,以便用户可以继续对结果进行计算。如果用户不想进一步使用结果,他们只需要输入一个新数字并点击提交即可。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Kalkulator</title>
    <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
if (isset($_POST["posalji_vrijednosti"]))
{
    $b_1 = $_POST["broj_1"];
    $op = $_POST["operacija"];
    $b_2 = $_POST["broj_2"];;
}
// Varijabla koja ce sadrzavati rezultat
$rezultat = "";
// Program odradjuje svoje ispod
if ($op == "*")
{
    $rezultat = $b_1 * $b_2;
}
elseif ($op == "/")
{
    $rezultat = $b_1 / $b_2;
}
elseif ($op == "+")
{
    $rezultat = $b_1 + $b_2;
}
elseif ($op == "-")
{
    $rezultat = $b_1 - $b_2;
}
?>
<form method="post">
    <table>
        <tr>
            <td>Unesi prvi broj</td>
            <td><input type="text" name="broj_1"></td>
        </tr>
        <tr>
            <td>Odaberi operaciju</td>
            <td><select name="operacija">
                    <option value="+">+</option>
                    <option value="-">-</option>
                    <option value="*">*</option>
                    <option value="/">/</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>Unesi drugi broj</td>
            <td><input type="text" name="broj_2"></td>
        </tr>
        <tr>
            <td><input type="submit" name="posalji_vrijednosti" value="              =              "></td>
        </tr>
        <tr>
            <td>
            <td>
                <?php
                echo "Rezultat: $rezultat";
                ?>
            </td>
            </td>
        </tr>
    </table>
</form>
</body>
</html>

【问题讨论】:

  • 您可以:1.将结果按默认设置在主输入字段中,2.提供一个按钮,用户可以单击该按钮将(显示的)结果放入输入 -> 需要 javascript ,但是是一件容易的事。 (肯定有第 3、第 4、... 选项。这些只是显而易见的选项)
  • 在选项一中,您可以预先选择输入中的值(通过 javascript),这样当用户开始输入时,他将覆盖默认值。
  • 另一个明显的选择是创建一个变量并在其中分配每个结果,并使其每次都成为默认输入。可能需要 If/Else,或者这取决于您的逻辑。
  • &lt;input type="text" name="broj_1" value="&lt;?php echo $rezultat; ?&gt;"&gt;
  • @NedzadGanic 看看 Jeff 在您发布代码后想出解决方案的速度有多快? ;-) 不客气。

标签: php calculator


【解决方案1】:

如果您想使用计算结果作为新的输入,您只需将结果作为输入的新value

最简单的解决方案和答案是:

 <input type="text" name="broj_1" value="<?php echo $rezultat; ?>">

如果您希望用户能够从头开始,您仍然可以显示它,但要预先选择结果:

<?php
    $rezultat = ""; // init that var

    // your calculation
    $rezultat = "30";
?>
<input type="text" id="inputField" value="<?php echo $rezultat; ?>">
<script>
    input = document.getElementById('inputField');
    input.select();
</script>

或者您不能在输入中显示结果,而是提供一个将结果插入该输入的按钮:

<?php
    $rezultat = ""; // init that var
    // your calculation
    $rezultat = "30";
?>
<input type="hidden" id="result" value="<?php echo $rezultat; ?>">
<button onClick="copyValue()">re-use Result</button><br>
<input type="text" id="inputField">
<script>
function copyValue() {
    result = document.getElementById('result');
    input = document.getElementById('inputField');
    input.value = result.value;
}
</script>

【讨论】:

  • 不客气,杰夫。顺便说一句,(题外话),我注意到你是个音乐家;同样在这里。我自己主要演奏所有弦乐器,还有更多 ;-) 欢呼♫
  • 我更喜欢按键。只在醉酒时弹吉他和贝斯……干杯!
  • 哈哈!我明白了。我自己玩了一些;如果它播放声音,你可以肯定我会试一试。杰夫,新年万事如意,干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多