-2

ご覧のとおり、php 部分で価格を出力する単純なフォームを作成しようとしています。しかし、私はこれらのエラーが発生します

知らせ: Undefined variable: result in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php on line 3

知らせ: Undefined index: booking in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php on line 4

警告: Division by zero in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php on line 4

総費用は次のとおりです: 注意: Undefined variable: result in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php on line 18 付加価値税を除く。総費用にはVATが含まれています。

HTML

<form method="post" action="example2.php">
<select name="booking">
<option value="Double Room">Double Room £50</option>
<option value="Twin Room">Twin Room £70</option>
<option value="Family Room">Family Room £100</option>
</select>

<select name="service">
 <option value="10">Yes £10</option>
 <option value="0">No</option>
</select>

<input type="submit" value="submit" action="example2.php" name="submit"><br />
</form>

PHP

$vresult = $result * 20%
$booking = $_GET["booking"];

if ($booking == "Double Room"){
$result = 50 + $_GET["service"];
}
else if($booking == "Twin Room"){
$result = 50 + $_GET["service"];
}
else if($booking == "Family Room"){
$result = 100 + $_GET["service"];
}
?>
 Total cost is <?php echo $result;?> exculding VAT.

 Total cost is <?php echo $vresult; ?> including VAT.
4

5 に答える 5

3

これは間違っています:

$vresult = $result * 20%

%文字はモジュラス演算子であり、2番目のパラメーターを使用していないため;、phpが行を次のように見なすため、あらゆる種類のエラーにつながる終了を使用していません。

$vresult = $result * 20 % $booking = $_GET["booking"];
                                     ^^^^^^^^^^^^^^^^ undefined (see below)
                          ^^^^^^^^ NULL leads to division by zero

あなたはおそらく欲しい:

$vresult = $result * 0.2;

そして、フォームメソッドはPOST、投稿された変数が$_POST配列に配置されるようにするためです。

編集: 20%を含む価格はもちろん、価格1.2 * $resultを計算したに計算します。

于 2013-03-12T22:10:19.827 に答える
1

VAT を計算する行を移動する必要があるようです

$vresult = $result * 20%

実際に計算した後$result- PHPスクリプトを閉じる直前。そして、あなたはそれを次のように書く必要があります

$vresult = $result * 0.2;
于 2013-03-12T22:12:04.380 に答える
1

最初: vresult は $result を定義した後にある必要があり、* 20% ではなく * 1.2 で 20% 余分に計算します。 2 番目: $_GET の代わりに $_POST を使用する必要があります
3 番目: $_POST['service'] は変更できます。出力する前に確認してください。

$booking = @$_POST["booking"];
$service = @$_POST["service"] == 10? 10 : 0;

if ($booking == "Double Room"){
   $result = 50 + $service;
}
else if($booking == "Twin Room"){
   $result = 50 + $service;
}
else if($booking == "Family Room"){
   $result = 100 + $service;
}
$vresult = $result * 1.2;
?>
 Total cost is <?php echo $result;?> exculding VAT.

 Total cost is <?php echo $vresult; ?> including VAT.
于 2013-03-12T22:11:06.410 に答える
0

$result定義されていません。php: の最初の行を参照しています$vresult = $result * 20%$result予約タイプに基づいてを設定しようとしている場合は、指定された行を設定するコードの下に移動する必要があります$result

また、フォームメソッドはPOST使用する必要があるためです$_POST['booking']

;また、php の最初の行の後にa がありません

于 2013-03-12T22:09:38.977 に答える
-2

ファイルを初めて開いたとき、送信されたフォームはなく、これらの変数は定義されていません。それらを定義する前に isset() 関数を使用する必要があります。

于 2013-03-12T22:11:08.130 に答える