簡體   English   中英

如何添加PHP語句有條件地減去?

[英]How would I add a PHP statement to conditionally subtract?

我有一個使用PHP根據用戶做出的選擇計算總數的表格。 共有13個選擇。 我停留在兩個部分,“藍色”和“橙色”:

如果用戶選擇“藍色”,則價格會增加$ 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']; 

並且效果很好,除了即使未選擇藍色(四個)和橙色(六個),橙色的值也不會添加到總數中。 我應該使用if / else語句還是什么? 同樣,此表格也不必是安全的。 預先感謝您的任何想法。

如果當您獲得藍色時包括橙色,則可能不應該是2個不同的是/否選擇。

相反,它更應該是一個問題:


您要哪個計划? 橙色(150)藍色(250)

是的,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值為整數。

是的,您需要一些if / else邏輯

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

如果為假,則僅在藍色時添加橙色。 (請注意,我使用empty()以避免有關未定義變量的警告)

出於好奇,您為什么要按數字命名發布變量? 按名稱命名可能會減少您將來需要修改時的混淆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM