1

我正在尝试用 PHP 构建一个计算器,它将进入 Codeigniter 控制器。我在 html 中有一个表格,它可以获取数字。

 <!DOCTYPE html >

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Calculator</title>
</head>

<body>
    <form action="calc.php" method="POST">
        <input type="text" name="num1">
        <input type="text" name="num2">
        <input type="text" name="num3">
        <input type="submit" value="Calculate">

        <?php echo form_close();?>

    </form>

</body>
</html>

我有一个计算器将运行的公式,我试图在 calc.php 页面上进行布局。

if (isset($_POST['value']))
{
    $num1 = $_POST["num1"];
    $num2 = $_POST["num2"];
    $num3 = $_POST["num3"];
}


function calculate()
{ 
    $c = $num1/50;

    $b = $num2/12;

    $s = $num3/5;

    $p = $c + $b - $s;

    if($s > 4)
    {
        $s= 4;
    }
}


    echo $c." + ".$b." - ".$s = ";
    echo $p;

我不认为我这样做是对的。非常感谢所有帮助。

4

3 回答 3

1

我已经为你修复了一些代码,希望它可以帮助。

function calculate($num1, $num2, $num3)
{ 
   $data = array() ;

   $data['c'] = $num1 / 50;
   $data['b'] = $num2 / 12;
   $data['s'] = $num3 / 5;
   $data['p'] = $data['c'] + $data['b'] - $data['s'];

    if($data['s'] > 4)
    {
        $data['s']= 4;
    }
    return $data ;
}

if (isset($_REQUEST['value'])) //Additional checks should be done tho.
{
    $num1 = $_REQUEST["num1"];
    $num2 = $_REQUEST["num2"];
    $num3 = $_REQUEST["num3"];

    $data = calculate($num1, $num2, $num3) ;
    echo "{$data['c']} + {$data['b']} - {$data['s']} = {$data['p']}" ;
}
于 2013-06-20T17:39:57.470 回答
0

有一些地方不对:

  1. 你实际上并没有调用你的函数;
  2. 你没有从你的函数中返回任何东西(不是绝对必要的,但在这里看起来很合适);
  3. 您在函数中使用了未在函数范围内定义的变量。

查看手册以获取有关函数变量范围的更多信息。

于 2013-06-20T17:35:42.713 回答
0

首先,我想谈谈所有贡献并回答我的问题的人。我使用了 Jari 给我的例子,非常感谢,我根据我在 calc 中的需要对其进行了一些修改。区域。

    <?php
    //var_dump ($data['c']);

function calculate($num1, $num2, $num3)
{ 
   $data = array() ;

   $data['c'] = $num1 / 50;
   $data['b'] = $num2 / 12;
   $data['s'] = $num3 / 5;
   $data['p'] = $data['c'] + $data['b'] - $data['s'];


    return $data;


}

if (isset($_POST['submit']) && $_POST['submit'] == 'calc') 
{
    $num1 = $_POST['num1'];
    $num2 = $_POST["num2"];
    $num3 = $_POST["num3"];

    if($num3 > 4)
    {
        $num3 = 4;
    }

    $data = calculate($num1, $num2, $num3);
    $formula = "{$data['c']} + {$data['b']} - {$data['s']} = {$data['p']}";


    echo $data['p'];

}

通过将 if 语句从 return 上方移动并在我的 post 语句下替换。这有助于解决我遇到的问题。然后,我使用了 jeroen 的建议并进行了一些研究并创建了表单页面,现在一切都按照我的需要工作了。

    <!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
    <h3><?php echo (isset($formula)) ? $formula : "Formula Calculator"; ?></h3>
        <form action="calc.php" method="post">
            <input type="text" name="num1">
            <input type="text" name="num2">
            <input type="text" name="num3">
            <input type="submit" name="submit" value="calc">    
        </form>



</body>
</html>

再次感谢您提供的所有帮助,这就是我为设计所需的计算器所做的。

于 2013-07-25T18:36:56.767 回答