-1

编辑:我有两个文件,一个是 HTML,另一个是 PHP 脚本。我正在做一个简单的计算器。在我的 HTML 中,我有一个包含 4 个文本框的简单表单。第一个文本框是有一个数字。第二个文本框是要执行的操作。第三个文本框是第二个数字。第四个文本框就是答案。当用户单击计算按钮时,action 属性将 HTML 重定向到执行所有算法的 PHP 脚本。我希望 PHP 脚本将答案返回到我的 HTML 表单中的第四个文本框。

我怎样才能做到这一点?

这是我的 HTML 代码。

<!DOCTYPE html>
<html>
<head>
<meta name = "description" content = "This is a home page"/>
<meta name = "author" content = "William Salazar" />
<meta name = "keywords" content = "exercise for home page"/>
<title>Calculator</title>
</head>
<body>
    <fieldset>
        <legend>Calculator</legend>
        <form action = "calculate.php" method = "post">
            Please type in two numbers and an operation (ex: 2 + 3)<br/>
            <input type = "text" name = "fNum" size = "2"/>
            <input type = "text" name = "op" size = "2"/>
            <input type = "text" name = "sNum" size = "2"/>=
        <input type = "text" name = "ans" size = "2" readonly = "read" value = "<?php echo htmlspecialchars($ans);?>"/>
            <br/><br/>
            <input type = "submit" value = "Calculate"/>
        </form>
    </fieldset>
</body>
</html>

这是我的 PHP 脚本的代码。

<?php
function addition()
{

    $sum = (float)$_POST['fNum'] + (float)$_POST['sNum'];
    $_POST['ans'] = (string)$sum;   
    "<form action ='CalculatorForm.php' method = 'post'>"
    "</form>"
}


    switch($_POST['op'])
    {
        case '+':           
            addition();         
        break;
        case '-':
            subtraction();
        break;
        case '*':
            multiplication();
        break;
        case '/':
            division();     
        break;
        case '^':
            power();
        break;
        default:
        break;
    }

?>

当然,我还没有完成其他功能。我最初试图测试我的加法功能,如果可行,我将复制并粘贴代码。

4

2 回答 2

1

使用 AJAX 将数据从 HTML 发送到 PHP 并返回。
此外,您可以使用 Javascript 进行所有计算。

于 2012-07-14T06:49:37.710 回答
0

如果这是一个家庭作业问题,请继续使用您的代码,否则使用 AJAX 或 JAVASCRIPT 解决方案。

一些提示,如果您希望继续使用经典的表单提交解决方案:

  • 使用一页进行显示和计算,例如calculator.php
  • 将您的表单操作设置为同一页面,即calculator.php或删除调用同一页面的操作。
  • 提交后,像上面一样进行计算,将结果传递给$ans,因为您使用此 var 来呈现表单。
  • 如果您仍然有问题,请返回这里。
于 2012-07-14T07:57:20.883 回答