PHP产品比较脚本计算器

时间:2017-01-08 19:53:40

标签: php

我有一个相当简单的问题(我认为),但我无法在Google和Stackoverflow上找到明确的答案。我正在寻找一个简单的PHP计算器的脚本,我找到了多个,但我希望脚本计算多个公式并显示所有这些计算公式的答案(对不起我不清楚的解释,英语不是我的母语),我会下面用一个实际的例子来详细解释。

网站的访问者需要提供3个值,值1和值2,这些值可以是1到20000之间的数字,第三个值是1或2的下拉值然后脚本需要使用这些值进行8次计算值+预设值。

  1. 值1 *值2 * 0,0275 + 400 /值3 =输出一个
  2. 值1 *值2 * 0,0275 + 400 /值3 /值2 =输出2
  3. 值2 * 0,055 + 400 /值3 =输出三
  4. 值2 * 0,055 + 400 /值3 /值1 =输出4
  5. 但是我无法知道如何调整脚本来执行此操作。

    <?php 
    $page = $_GET['page']; 
    
    class calc { 
     var $number1; 
     var $number2;
     Var $number3; 
    
          function oper($value1,$value2,$value3) 
          { 
            $result1 =$value1 x value2 x 0,0275 + 400 ÷ value3;
               Echo(“Outcome one is $result1<br><br>”);
               Echo(“$value1 x value2 x 0,0275 + 400 ÷ value3 =$result1”);
            $result2 =$value1 x value2 x 0,0275 + 400 ÷ value3 ÷ value 2;
               Echo(“Outcome one is $result2<br><br>”);
               Echo(“$value1 x value2 x 0,0275 + 400 ÷ value3 ÷ value2 =$result2”);
                    exit; 
           } 
    } 
    $calc = new calc(); 
    ?> 
    <TITLE>Test calculator</TITLE> 
    <form name="calc" action="?page=calc" method="POST"> 
    Value 1: <input type=text name=value1><br> 
    Value 2: <input type=text name=value2><br>
    Value 3: <select option=”value 3”>
    <option value=”1”>1</option>
    <option value=”2”>2</option></select>
    Value 2: <input type=text name=value3><br>
    <br> 
    <input type=submit value="Calculate"> 
    </form> 
    <?php 
    if($page == "calc"){ 
    $value1 = $_POST['value1']; 
    $value2 = $_POST['value2']; 
    $value3 = $_POST['value2'];
    $oper = $_GET['oper']; 
     if(!$value1){ 
          echo("You must enter number 1!"); 
          exit; 
     } 
     if(!$value2){ 
          echo("You must enter number 2!"); 
          exit; 
     } 
     if(!$value3){ 
          echo("You must enter number 2!"); 
          exit; 
     }
     if(!eregi("[0-9]", $number1)){ 
          echo("Value 1 MUST be numbers!"); 
          exit; 
     } 
     if(!eregi("[0-9]", $number2)){ 
          echo("Value 2 MUST be numbers!"); 
          exit; 
     } 
    } 
    ?>`
    

    有没有人有任何解决方案?

    感谢您的所有快速回复,我调整了代码,现在它不再提供错误,但它仍然没有显示公式的答案     

    class calc {
    function calculate($value1,$value2,$value3)
    {
        $result1 = $value1 * $value2 * 0.0275 + 400 / $value3;
        echo("Outcome one is $result1<br><br>");
    
        $result2 = $value1 * $value2 * 0.0275 + 400 / $value3 / $value2;
        echo("Outcome two is $result2<br><br>");
    
        exit;
    }
    }
    $calc = new calc(); 
    ?> 
    <TITLE>Test calculator</TITLE> 
    <form name="calc" action="?page=calc" method="POST"> 
    Value 1: <input type=text name=value1><br> 
    Value 2: <input type=text name=value2><br>
    Value 3: <input type=text name=value3><br>
    Method: <input type=radio name=calculate value="calculate">Test</input><br>
    <br> 
    <input type=submit value="Calculate"> 
    </form> 
    <?php 
    if($page == "calc"){ 
    $value1 = $_POST['value1']; 
    $value2 = $_POST['value2']; 
    $value3 = $_POST['value3'];
    $calculate = $_POST['calculate']; 
     if(!$value1){ 
          echo("You must enter number 1!"); 
          exit; 
     } 
     if(!$value2){ 
          echo("You must enter number 2!"); 
          exit; 
     } 
     if(!$value3){ 
          echo("You must enter number 3!"); 
          exit; 
     } 
     if(!$oper){
          echo("Must be selected!");
          exit;
     } 
    } 
    ?>
    

3 个答案:

答案 0 :(得分:0)

快速修复:

class calc {
    function oper($value1,$value2,$value3)
    {
        $result1 = $value1 * $value2 * 0.0275 + 400 / $value3;
        echo("Outcome one is $result1<br><br>");

        $result2 = $value1 * $value2 * 0.0275 + 400 / $value3 / $value2;
        echo("Outcome two is $result2<br><br>");

        exit;
    }
}
$calc = new calc(); 

答案 1 :(得分:0)

您根本没有使用正确的PHP编码!

要获得答案,请尝试更改所有计算,例如:

$v1 = ($value1 * $value2 * 0.0275 + 400) / $value3;

答案 2 :(得分:0)

首先,问题是你从未调用函数calculate()。当你不打电话给某个功能时,你也不会得到你期望的输出。

我在你的剧本中改变了一些东西。

  1. 您从未检查第26行中是否存在$_POST值。有很多方法可以检查输入是否已提交,我使用了isset()函数。如果提交了输入,则$value的值将是输入的值,如果未提交,则输入将为空。

  2. 最好不要使用!$value,而是检查输入是否存在(第26行)以及是否为空。我们使用empty()

  3. 我无法找到$oper。我想你的意思是$calculate

  4. 您最好使用exit(),而不是elseif()。这样也可以更轻松地使用else()并调用您的函数

  5. 您忘记调用函数calculate

  6. 请使用有效的HTML格式。

  7. 因此,在更改这些内容后,您将获得此输出:

    <?php
    class calc {
        function calculate($value1,$value2,$value3){
            $result1 = $value1 * $value2 * 0.0275 + 400 / $value3;
            echo("Outcome one is $result1<br><br>");
    
            $result2 = $value1 * $value2 * 0.0275 + 400 / $value3 / $value2;
            echo("Outcome two is $result2<br><br>");
    
            exit;
        }
    }
    $calc = new calc(); 
    ?> 
    <TITLE>Test calculator</TITLE> 
    <form name="calc" action="?page=calc" method="POST"> 
    Value 1: <input type="text" name="value1"><br> 
    Value 2: <input type="text" name="value2"><br>
    Value 3: <input type="text" name="value3"><br>
    Method: <input type="radio" name="calculate" value="calculate">Test</input><br>
    <br> 
    <input type=submit value="Calculate"> 
    </form> 
    <?php 
    if($_GET['page'] == "calc"){
        $value1 = isset($_POST['value1']) ? $_POST['value1'] : '';
        $value2 = isset($_POST['value2']) ? $_POST['value2'] : '';
        $value3 = isset($_POST['value3']) ? $_POST['value3'] : '';
        $calculate = isset($_POST['calculate']) ? $_POST['calculate'] : '';
        if(empty($value1)){
            echo("You must enter number 1!"); 
        } elseif(empty($value2)){ 
            echo("You must enter number 2!");
        } elseif(empty($value3)){ 
            echo("You must enter number 3!"); 
        } elseif(empty($calculate)){
            echo("Must be selected!");
        } else{
            // If all inputboxes are not empty and the checkbox is ticked -> Calculate
            $calc->calculate($value1,$value2,$value3);
        }
    } 
    ?>
    

    我测试了它并且它有效。请确保你知道为什么我将来做了一些改变。

    如果您还有任何疑问,请随时在下面发表评论。