我有一个相当简单的问题(我认为),但我无法在Google和Stackoverflow上找到明确的答案。我正在寻找一个简单的PHP计算器的脚本,我找到了多个,但我希望脚本计算多个公式并显示所有这些计算公式的答案(对不起我不清楚的解释,英语不是我的母语),我会下面用一个实际的例子来详细解释。
网站的访问者需要提供3个值,值1和值2,这些值可以是1到20000之间的数字,第三个值是1或2的下拉值然后脚本需要使用这些值进行8次计算值+预设值。
但是我无法知道如何调整脚本来执行此操作。
<?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;
}
}
?>
答案 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()
。当你不打电话给某个功能时,你也不会得到你期望的输出。
我在你的剧本中改变了一些东西。
您从未检查第26行中是否存在$_POST
值。有很多方法可以检查输入是否已提交,我使用了isset()
函数。如果提交了输入,则$value
的值将是输入的值,如果未提交,则输入将为空。
最好不要使用!$value
,而是检查输入是否存在(第26行)以及是否为空。我们使用empty()
。
我无法找到$oper
。我想你的意思是$calculate
。
您最好使用exit()
,而不是elseif()
。这样也可以更轻松地使用else()
并调用您的函数
您忘记调用函数calculate
。
请使用有效的HTML格式。
因此,在更改这些内容后,您将获得此输出:
<?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);
}
}
?>
我测试了它并且它有效。请确保你知道为什么我将来做了一些改变。
如果您还有任何疑问,请随时在下面发表评论。