繁体   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