0

OK 1 行目 + 2 行目 +*.01% を計算し、3 行目 + 4 行目を追加して合計を計算するフォームを作成しています。*.01 に問題があります。最初の 2 つだけで動作しますが、最後の 2 つを追加すると、4 つすべてを追加すると 1 行が削除されます。

<?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";
}
?>
4

2 に答える 2

0

html 5 を使用している場合は、html マークアップでフォーム入力の入力タイプを使用floatvalして指定することで回避できます。intval

例は次のとおりです。

<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 を使用していない場合、またはフォームにデータを挿入できるためセキュリティを確保する必要があると感じている場合は、intvalまたはfloatval関数を使用する必要があります。

于 2013-05-20T22:56:51.690 に答える
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:コメントを参照してください! 掛け算と割り算は、足し算と引き算よりも優先されます。

于 2013-05-20T22:45:03.970 に答える