我正在尝试更改在线商店的一些PHP代码,但我无法更改代码的if / elseif部分。它应检查country = x和邮政编码是否收取这么多欧元。如果该国不是X来收取国际费率,还有其他的。
问题在于向每位买家收取elseif声明中包含的邮政编码的费率:(
if($_SESSION["usuario_alta"]["paisID"]==73)
{
if($_SESSION["usuario_alta"]["provinciaID"]==24 )
{
$_SESSION['compra_gastos_envio'] = 10.50*$_sMULTI;
echo "10.50€ x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."€</b></span>";
}
elseif($_SESSION["usuario_alta"]["provinciaID"]==35 || 43)
{
$_SESSION['compra_gastos_envio'] = 4.50*$_sMULTI;
echo "4.50€ x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."€</b></span>";
}
else
{
$_SESSION['compra_gastos_envio'] = 8.50*$_sMULTI;
echo "8.50€ x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."€</b></span>";
}
}
else
{
$_SESSION['compra_gastos_envio'] = str_replace(",",".",$_SESSION["usuario_alta"]["gastos"])*$_sMULTI;
echo $_SESSION["usuario_alta"]["gastos"]." x $_sMULTI = <span><b>".$_SESSION['compra_gastos_envio']."€</b></span>";
}
我很确定答案是微不足道的,但我一直试图谷歌寻求一段时间没有成功的解决方案。
谢谢!
答案 0 :(得分:2)
elseif ($_SESSION["usuario_alta"]["provinciaID"] == 35 || 43)
这不起作用,您无法一次比较两个值。写得像:
elseif ($_SESSION["usuario_alta"]["provinciaID"] == 35 || $_SESSION["usuario_alta"]["provinciaID"] == 43)
或
elseif (in_array($_SESSION["usuario_alta"]["provinciaID"], array(35, 43)))
答案 1 :(得分:1)
我认为问题在于这一行:
} elseif($_SESSION["usuario_alta"]["provinciaID"]==35 || 43){
这解析为如果$ _SESSION [] []等于35或者等于43.由于43大于0,43计算为true,这将导致elseif始终被执行,除非前面的if条件为真。