以下功能正在努力,我必须根据一些规则计算$ vatamount。
我从一个触发我的ajax请求的脚本中得到了我的所有POST内容(下面的代码是ajax URL中的代码)。
规则是 - 如果$ bookingtype值是“公司”预订或“团体”预订,那么增值税率将根据逗留时间计算。 28晚以上的住宿可享受20%的住宿,28晚住宿的住宿可享受4%的住宿。
但是,如果$ bookingtype值为“休闲”预订,则无论逗留时间长短,增值税率均为20%。
我有功能返回正确的增值税百分比。但最后一句if声明对我不起作用。我是一个php新手,我想我已经做得很好,以实现这一点。只需要一些帮助即可完成此功能。我想我已经把我的语法搞砸了lol
最后一个回波应该回显计算的增值税数量。
提前致谢。
function implement_ajax_vat() {
if(isset($_POST['arrivaldate']))
{
//get the start and end dates
$startdate = ($_POST['arrivaldate']);
$enddate = ($_POST['leavingdate']);
$datetime1 = new DateTime($startdate);
$datetime2 = new DateTime($enddate);
$interval = $datetime1->diff($datetime2);
$numberofnights = $interval->format('%a nights');
//calculatge the VAT amount
$bookingtype = ($_POST['bookingtype']);
$rentalprice = ($_POST['rentalprice']);
//check numbr of nights
if($numberofnights >= 29){
$vatrate = "4";
} elseif ($numberofnights <= 28) {
$vatrate = "20";
}
//get the booking type and check if its a variable rate
if(($bookingtype = 'Corporate') || ($bookingtype = 'Groups')){
$vatamount = ($rentalprice / 100) * $vatrate;
} elseif ($bookingtype = 'Leisure') {
$vatamount = "20";
}
echo $vatamount;
die();
}
}
答案 0 :(得分:0)
您要分配值而不是比较:使用双等号==
:
if($bookingtype == 'Corporate' || $bookingtype == 'Groups'){
^ ^
$vatamount = ($rentalprice / 100) * $vatrate;
} elseif ($bookingtype == 'Leisure') {
^
$vatamount = 20;
}
这就是为什么第一个语句在分配并返回非空字符串时产生true的原因,所以你永远不会去elseif部分。