Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 生成计算器-当按钮单击“不显示在文本框中”时。_Php - Fatal编程技术网

Php 生成计算器-当按钮单击“不显示在文本框中”时。

Php 生成计算器-当按钮单击“不显示在文本框中”时。,php,Php,对了,我现在正在学习php,在你们说使用javascript之前,我正在学习php,并希望用这段代码 基本上,我想在Windows7上复制计算器,但是只需使用按钮0-9、+-/*和= 在您阅读代码之前,我构建它只是为了尝试让它像这样工作 您单击1,然后它将显示在文本框中。如果您单击5,它将在文本框中的1之后放置5,等等。。。然后,当您单击诸如divide之类的运算符(这是我迄今为止唯一尝试编码为不工作的运算符)时,文本框将删除数字,但保存总数,然后按下submit按钮时,输入的任何新数字都将被分

对了,我现在正在学习php,在你们说使用javascript之前,我正在学习php,并希望用这段代码

基本上,我想在Windows7上复制计算器,但是只需使用按钮0-9、+-/*和=

在您阅读代码之前,我构建它只是为了尝试让它像这样工作

您单击1,然后它将显示在文本框中。如果您单击5,它将在文本框中的1之后放置5,等等。。。然后,当您单击诸如divide之类的运算符(这是我迄今为止唯一尝试编码为不工作的运算符)时,文本框将删除数字,但保存总数,然后按下submit按钮时,输入的任何新数字都将被分割

但是,当我运行代码并单击web浏览器中的任何按钮时,文本框中没有任何内容。任何帮助都将不胜感激。(学习php,这样我就可以在同一家公司从一线支持发展到web开发,所以这一点很重要)

代码如下,我一直在使用xampp运行它

<html>
<head>
<title>Calculator</title>
<style>
#wrapper{
width:500px;
height:500px;
margin:auto;
border:1px solid;
}
#content{
width:500px;
height:500px;
}
</style>
</head>



<body>
<div id="wrapper">
    <div id="content">
        <?php
            $answer = $display = $saveddisplay = $newdisplay = $add = $subtract = $divide = $multiply = $num0 = $num1 = $num2 = $num3 = $num4 = $num5 = $num6 = $num7 = $num8 = $num9 =  "";

            if($_SERVER["REQUEST_METHOD"] == "POST"){
                $num0 = ($_POST["number0"]);
                $num1 = ($_POST["number1"]);
                $num2 = ($_POST["number2"]);
                $num3 = ($_POST["number3"]);
                $num4 = ($_POST["number4"]);
                $num5 = ($_POST["number5"]);
                $num6 = ($_POST["number6"]);
                $num7 = ($_POST["number7"]);
                $num8 = ($_POST["number8"]);
                $num9 = ($_POST["number9"]);
                $add = ($_POST["add"]);
                $subtract = ($_POST["subtract"]);
                $divide = ($_POST["divide"]);
                $multiply = ($_POST["multiply"]);



                ///////////////////////////////////////////NUMBERS
                if($_POST["number0"]){
                    $display = $display && ($_POST["number0"]);
                }
                if($_POST["number1"]){
                    $display = $display && ($_POST["number1"]);
                }
                if($_POST["number2"]){
                    $display = $display && ($_POST["number2"]);
                }
                if($_POST["number3"]){
                    $display = $display && ($_POST["number3"]);
                }
                if($_POST["number4"]){
                    $display = $display && ($_POST["number4"]);
                }
                if($_POST["number5"]){
                    $display = $display && ($_POST["number5"]);
                }
                if($_POST["number6"]){
                    $display = $display && ($_POST["number6"]);
                }
                if($_POST["number7"]){
                    $display = $display && ($_POST["number7"]);
                }
                if($_POST["number8"]){
                    $display = $display && ($_POST["number8"]);
                }
                if($_POST["number9"]){
                    $display = $display && ($_POST["number9"]);
                }

                //////////////////////////////////////////OPERATORS
                if($_POST["divide"]){
                    $saveddisplay = $display;
                    $display = "";
                    if($_POST["number0"]){
                        $newdisplay = $newdisplay && ($_POST["number0"]);
                            if($_POST["submit"]){
                                $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                            }



                    }
                    if($_POST["number1"]){
                        $newdisplay = $newdisplay && ($_POST["number1"]);
                            if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }
                    if($_POST["number2"]){
                        $newdisplay = $newdisplay && ($_POST["number2"]);
                            if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }
                    if($_POST["number3"]){
                        $newdisplay = $newdisplay && ($_POST["number3"]);
                            if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }
                    if($_POST["number4"]){
                        $newdisplay = $newdisplay && ($_POST["number4"]);
                            if($_POST["submit"]){
                                $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                            }
                    }
                    if($_POST["number5"]){
                        $newdisplay = $newdisplay && ($_POST["number5"]);
                            if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }
                    if($_POST["number6"]){
                        $newdisplay = $newdisplay && ($_POST["number6"]);
                            if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }
                    if($_POST["number7"]){
                        $newdisplay = $newdisplay && ($_POST["number7"]);
                            if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }
                    if($_POST["number8"]){
                        $newdisplay = $newdisplay && ($_POST["number8"]);
                            if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }
                    if($_POST["number9"]){
                        $newdisplay = $newdisplay && ($_POST["number9"]);
                        if($_POST["submit"]){
                            $answer = $saveddisplay / $newdisplay && $newdisplay = "";

                        }
                    }

                }






            }



        ?>



        <form method ="POST" action="<?php  ($SERVER["PHP_SELF"]);?>">
        <input type="text" width="50" height="20" name="display" value="<?php  echo $display or $newdisplay or $answer;?>">

        <br><br><br><br><br><br>
        <button type="button" name="number7" value="7" style="width:20px; padding-left:5px; margin-left:2px;">7</button>
        <button type="button" name="number8" value="8" style="width:20px; padding-left:5px; margin-left:2px;">8</button>
        <button type="button" name="number9" value="9" style="width:20px; padding-left:5px; margin-left:2px;">9</button>
        &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp

        <button type="button" name="divide" value="/" style="width:20px; padding-left:5px; margin-left:2px;">/</button>
        <button type="button" name="multiply" value="*" style="width:20px; padding-left:5px; margin-left:2px;">*</button>
        <button type="button" name="subtract" value="-" style="width:20px; padding-left:5px; margin-left:2px;">-</button>
        <button type="button" name="add" value="+" style="width:20px; padding-left:5px; margin-left:2px;">+</button>
        <br><br>

        <button type="button" name="number4" value="4" style="width:20px; padding-left:5px; margin-left:2px;">4</button>
        <button type="button" name="number5" value="5" style="width:20px; padding-left:5px; margin-left:2px;">5</button>
        <button type="button" name="number6" value="6" style="width:20px; padding-left:5px; margin-left:2px;">6</button>

        <br><br>
        <button type="button" name="number1" value="1" style="width:20px; padding-left:5px; margin-left:2px;">1</button>
        <button type="button" name="number2" value="2" style="width:20px; padding-left:5px; margin-left:2px;">2</button>
        <button type="button" name="number3" value="3" style="width:20px; padding-left:5px; margin-left:2px;">3</button>

        <br><br>
        <button type="button" name="number0" value="0" style="width:20px; padding-left:5px; margin-left:2px;">0</button>
        <button type="submit" value="=" name="submit" style="width:46px; padding-left:5px; margin-left:2px;">=</button>
        </form>


    </div>
</div>
</body>







</html>

计算器
#包装纸{
宽度:500px;
高度:500px;
保证金:自动;
边框:1px实心;
}
#内容{
宽度:500px;
高度:500px;
}

当按钮类型设置为
button
时,数据不会自动提交。您需要将类型设置为
submit

<button type="submit" name="number6" value="6" style="width:20px; padding-left:5px; margin-left:2px;">6</button>
6
如果希望在使用equals按钮提交表单之前将数字插入到输入元素中,则必须使用JavaScript

给出您的输入元素和id

<input id='result' type="text" width="50" height="20" name="display" value="<?php  echo $display or $newdisplay or $answer;?>">

在php端,使用eval()读取数学表达式; 检查此示例:

<?php
$res = 0;
$mathExpression = "((2+2) /4) *5";
eval("\$res = $mathExpression;");
echo $res;
?>

对$mathExpression求值,结果为$res

并更改此行:

<form method ="POST" action="<?php  ($SERVER["PHP_SELF"]);?>">

你想做的事完全是疯了。我建议你尝试另一种方法。PHP不适合制作Windows计算器(Javascript更好)

您可以创建两个名为number1和number2的输入字段,然后创建四个提交按钮:加、减、除、乘

在您的代码中,您应该首先检查您收到了哪些POST数据。你把所有的字段都填好了吗?它们是数字吗?单击了哪个按钮

关于您的代码:

在PHP中,您不必定义变量,因此无需:
$answer=$display=$saveddisplay=$newdisplay……

$display=$display&($_POST[“number0”])这没有意义,它将计算为布尔值。这也是:
$answer=$saveddisplay/$newdisplay&&$newdisplay=“”
PHP不会在会话之间保存变量的状态,因此当您刚才单击按钮时,它不会知道这些变量是什么。
$display或$newdisplay或$answer
PHP没有那么聪明,您应该使用三元运算符或将它们变成一个变量

另外,我建议您阅读一些关于编程的书籍或观看YT的教程,这看起来可能很简单,但用PHP制作计算器并不是那么简单

PHP中的示例计算器:
试试这个示例代码。也许这会对你有所帮助:)使用Javascript来点击按钮,这是更好的方法

它将在同一页面上生成结果,您也可以链接

使用.php扩展名保存此文件


样本计算器



























为什么?我不能这样做吗?这会导致一个错误。你为什么要这样做服务器端?这一定是我一生中见过的最糟糕的计算器代码。不要使用eval。这是不安全的。如果你测试数字和数学表达式,这也不是不安全的:'/[^0-9\+-*\/()\.]/'达曼,如果你在php方面如此擅长,请制作一个带按钮的计算器,并向我展示代码。这会帮助我学习我真的很想帮忙。从简单的事情开始,到更简单的事情结束。
<form method ="POST" action="<?php  ($SERVER["PHP_SELF"]);?>">
<form method ="POST" action="<?php  echo $_SERVER["PHP_SELF"];?>">
<?php

$number1 = (int)($_POST['number1']);
$number2 = (int)($_POST['number2']);
$action  = $_POST['action'];

if(!isset($number1)){
        echo 'Missing first operand!';
}
else if(!isset($number2)){
        echo 'Missing second operand!';
}
else if(!empty($action)){
        if($action == "Add"){
                $result = $number1 + $number2;
        }
        else if($action == "Subtract"){
                $result = $number1 - $number2;
        }
        else if($action == "Multiply"){
                $result = $number1 * $number2;
        }
        else if($action == "Divide"){
                $result = $number2 != 0 ? $number1 / $number2 : "NaN";
        }

        if(isset($result)){
                echo "Your result is: ".$result;
        }
}
?>

<form action="" method="POST">
<input type="number" required="required" name="number1" />
<input type="number" required="required" name="number2" />
<input type="submit" name="action" value="Add" />
<input type="submit" name="action" value="Subtract" />
<input type="submit" name="action" value="Multiply" />
<input type="submit" name="action" value="Divide" />
</form>