codeigniter建立一个计算器

时间:2013-06-20 17:33:30

标签: php codeigniter calculator

我正在尝试用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;

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

3 个答案:

答案 0 :(得分: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']}" ;
}

答案 1 :(得分:0)

有些事情是错的:

  1. 你实际上并没有打电话给你的功能;
  2. 你没有从你的功能中返回任何东西(不是绝对必要但在这里似乎是合适的);
  3. 您正在函数中使用未在函数范围中定义的变量。
  4. 查看手册以获取有关functionsvariable scope

    的更多信息

答案 2 :(得分: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语句并在我的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>

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