0

PHP を使用して、ユーザーの選択に基づいて合計を計算するフォームがあります。全部で 13 の選択肢があります。「青」と「オレンジ」の 2 つのセクションに行き詰まっています。

ユーザーが「ブルー」を選択した場合、価格に $250.00 が追加されます

ユーザーが「オレンジ」を選択した場合、価格に $150.00 が追加されます

私が理解しようとしているのは、ユーザーがブルーを選択してからオレンジを選択した場合、オレンジの料金が合計に追加されないようにしたいということです。一方、彼らが青を選択せず​​にオレンジを選択した場合、150.00 ドルを合計に追加したいと思います。

それを説明するために私が考えることができる唯一の方法は、ブルーを購入するとオレンジが含まれるということです.

ここに私のHTMLがあります:

青い

はい・いいえ

オレンジ

はい

いいえ

これが私のPHPです:

<?php
$one = $_POST ['one'];
$two = $_POST ['two'];
$three = $_POST ['three'];
$four = $_POST ['four'];
$five = $_POST ['five'];
$six = $_POST ['six'];
$seven = $_POST ['seven'];
$eight = $_POST ['eight'];
$nine = $_POST ['nine'];
$ten = $_POST ['ten'];
$eleven = $_POST ['eleven'];
$twelve = $_POST ['twelve'];
$thirteen = $_POST ['thirteen'];
$total = ($_POST['one'] + $_POST['two'] + $_POST['three'] + $_POST['four'] 
+   $_POST['five'] + $_POST['six'] + $_POST['seven'] + $_POST['eight']+ 
$_POST['nine'] + $_POST['ten']+ $_POST['eleven'] + 
$_POST['twelve']+ $_POST['thirteen']);

誰かが私に、次のようにするべきだと言いました:

$four = $_POST ['four']- $_POST ['six'];

これは正常に機能しますが、青 (4) が選択されておらず、オレンジ (6) が選択されている場合でも、オレンジの値は合計に追加されません。if/else ステートメントなどを使用する必要がありますか? また、このフォームは安全である必要はありません。アイデアをお寄せいただきありがとうございます。

4

3 に答える 3

0

青を取得するときにオレンジが含まれている場合、おそらく 2 つの異なるはい/いいえの選択肢であってはなりません。

代わりに、1 つの質問である可能性が高くなります。


どのプランをご希望ですか?オレンジ (150) ブルー (250)

于 2009-08-12T18:13:14.027 に答える
0

はい、if/else が最適です。これは、三項演算子を使用してインラインで実行できます。

これを変える:

$total = ($_POST['one'] + $_POST['two'] + $_POST['three'] + $_POST['four'] 
+   $_POST['five'] + $_POST['six'] + $_POST['seven'] + $_POST['eight']+ 
$_POST['nine'] + $_POST['ten']+ $_POST['eleven'] + 
$_POST['twelve']+ $_POST['thirteen']);

これに:

$total = ($_POST['one'] + $_POST['two'] + $_POST['three'] + $_POST['four'] 
+   $_POST['five'] + (($_POST['four'] > 0) ? 0 : $_POST['six']) + $_POST['seven'] + $_POST['eight']+ 
$_POST['nine'] + $_POST['ten']+ $_POST['eleven'] + 
$_POST['twelve']+ $_POST['thirteen']);

これは、 $_POST 値が整数であることを前提としています。

于 2009-08-12T18:13:43.603 に答える
0

はい、if/elseロジックが必要です

if( empty($_POST['blue'] ) && !empty($_POST['orange'] ) )
{
    $_POST['total'] += $_POST['orange'];
}

false の場合、青の場合のみオレンジが追加されます。(未定義の変数に関する警告を避けるために empty() を使用することに注意してください)

好奇心から、なぜ投稿変数に番号を付けているのですか? 名前を付けておくと、後で変更する必要がある場合に混乱しにくくなる可能性があります。

于 2009-08-12T18:13:55.333 に答える