php表单计算器如何解决这个问题

时间:2013-05-20 22:41:03

标签: php calculator

好的我正在制作一个计算第1行和第2行+ *。01%的表格然后添加第3行和第4行然后给出总计。我遇到问题* .01它只适用于前两个但是当我添加最后两个时它会丢弃一行如果我把它全部四个添加罚款。

<?php
if (count($_POST) > 0 && isset($_POST["calc15TextArea2"])){
    // add First and Second Numbers
    $sum = $_POST["indexEditbox1"] + $_POST["indexEditbox2"]*.01+ $_POST      ["calc15Editbox3"] + $_POST ["calc15Editbox4"];
    // their sum is diplayed as
    echo "Total is $ $sum";
}
?>

2 个答案:

答案 0 :(得分:0)

将所有发布变量包装在intval()中,例如intval($_POST['indexEditBox2'])

此函数将从字符串中获取整数值。 (如果它们不是整数,则使用floatval()等等函数)

修改:同时尝试0.01代替.01。鉴于这只是一种狂野的预感,我可能就是.。被选为连接运算符。

所以试试:

    $sum = floatval( $_POST["indexEditbox1"] ) + floatval( $_POST["indexEditbox2"] ) * 0.01+ floatval( $_POST["calc15Editbox3"] ) + floatval( $_POST["calc15Editbox4"] ) ;

edit2:查看评论!乘法和除法优先于加法和减法。

答案 1 :(得分:0)

如果您使用的是html 5,则可以使用floatvalintval,在html标记中指定表单输入的输入类型。

一个例子是;

<input type="number" name="indexEditBox1" />

然后在你的PHP代码中你可以做到;

$sum = $_POST["indexEditbox1"] + $_POST["indexEditbox2"] * .01 + $_POST["calc15Editbox3"] + $_POST ["calc15Editbox4"];

另外,我建议您将计算括在括号中以获得所需的结果,这也使得阅读更容易,尤其是当您的计算变得更复杂时。我不会改变它;

$sum = (($_POST["indexEditbox1"] + $_POST["indexEditbox2"]) * .01) 
       + ($_POST["calc15Editbox3"] + $_POST ["calc15Editbox4"]);

如果您没有使用html5或感觉需要安全,因为人们可以将数据注入表单,您应该使用intvalfloatval函数。