1

このフォームを使用して、ユーザーが入力した変数を取得し、それらをcalculate.phpに渡して、結果をカウントして表示しようとしています。

計算.html

<HTML>
<HEAD>
<TITLE>Calculation Form</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="calculate.php">
<P>Value 1: <INPUT TYPE="text" NAME="vall" SIZE=10></P>
<P>Value 2: <INPUT TYPE="text" NAME="val2" SIZE=10></P>

<P>Calculation:<br>
<INPUT TYPE="radio" NAME="calc" VALUE="add"> add<br>
<INPUT TYPE="radio" NAME="calc" VALUE="subtract"> subtract<br>
<INPUT TYPE="radio" NAME="calc" VALUE="multiply"> multiply<br>
<INPUT TYPE="radio" NAME="calc" VALUE="divide"> divide</P>


<P><INPUT TYPE="submit" NAME="submit" VALUE="Calculate"></P>

</BODY>
</HTML>

calculate.php:

        <?
if (($_POST["vall"] == "") || ($_POST["val2"] == "") || ($_POST["calc"] =="")) {
    header("Location: http://localhost/calculate.html");
exit;
}

if ($_POST["calc"] == "add") {
   $result = $_POST["vall"] + $_POST["val2"];
} else if ($_POST["calc"] == "subtract") {
   $result = $_POST["vall"] - $_POST["val2"];
} else if ($_POST["calc"] == "multiply") {
   $result = $_POST["vall"] * $_POST["val2"];
} else if ($_POST["calc"] == "divide") {
   $result = $_POST["vall"] / $_POST["val2"];
}

?>

<HTML>
<HEAD>
<TITLE>Calculation Result</TITLE>
</HEAD>
<BODY>

<P>The result of the calculation is: <? echo $result; ?></P>

</BODY>
</HTML>

私は次のことしか得られないので、誰でも私の間違いはどこにあるかを言うことができます:計算の結果は次のとおりです:

4

4 に答える 4

1

"すべての配列インデックスでsを見逃した$_POST[]ため、を追加する必要があります""

<?
if (($_POST["vall"] == "") || ($_POST["val2"] == "") || ($_POST["calc"] =="")) {
    header("Location: http://localhost/calculate.html");
exit;
}

if ($_POST["calc"] == "add") {
   $result = $ POST[vall] + $_POST[val2];

} else if ($_POST["calc"] == "subtract") {
   $result = $_POST["vall"] - $_POST["val2"];
} else if ($_POST["calc"] == "multiply") {
   $result = $_POST["vall"] * $_POST["val2"];
} else if ($_POST["calc"] == "divide") {
   $result = $_POST["vall"] / $_POST["val2"];
}

?>
于 2012-11-17T11:26:15.477 に答える
1

これら$_POST[vall]はである必要があります$_POST['vall']。文字列リテラルvallがキーです。

于 2012-11-17T11:27:18.767 に答える
0

calculate.phpの8行目に間違いがあります。

$result = $ POST[vall] + $_POST[val2];

する必要があります:

$result = $_POST["vall"] + $_POST["val2"];

そして、以前の回答を考慮に入れる

于 2012-11-17T11:33:57.140 に答える
0

ここでタイプミスする可能性がありますが、他のすべての人が言ったことに加えて、タグを閉じるのを忘れました</form>

<INPUT TYPE="radio" NAME="calc" VALUE="divide"> divide</P>

<P><INPUT TYPE="submit" NAME="submit" VALUE="Calculate"></P>

</FORM> <!-- MISSING -->

</BODY>

また、処理する前にPOSTリクエストを確認します。

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
   // do your stuff
}
于 2012-11-17T11:48:20.703 に答える