我有一个功能,可以检查取件地址中的搜索是否包含机场,如下所示: -
function checkIsAirport(str) {
var myRegExp = /\bAIRPORT\b/i;
return str.match(myRegExp);
}
// Check if label contains an airport..
if (checkIsAirport(label.html()) != null &&
label.parent().parent().attr('title') == "Pickup") {
//FUNCTION
}
基本上我需要做的是如果皮卡包含机场地址,则加上“x”金额的“附加费”。因此,如果机场设置为盖特威克机场,则会将其发送至tariff.fare.controller.php,这将为票价添加“x”。我只是想知道如何才能做到这一点。
此外,如果用户将取件从机场更改为无机场地址,则必须从票价中减去“x”。
非常感谢任何帮助!
::编辑::
只是为了实现这一点,我想要使用AJAX。一旦用户在拾取地址中输入机场,就需要将请求发送到我的TariffFareController类以执行以下功能:
private static function getFinalFare($fare) {
$final_fare = ($fare * self::$fare_factor);
if (self::$str_wait_return == "true") {
$final_fare = $final_fare * 2;
}
if (self::$str_return == "true" && self::$return_date != "false" && self::$return_time != "false") {
// We need to calc to fare based on the return date and time
$return_fare = self::getFare(1);
// Append to final fare
$final_fare = $final_fare + $return_fare;
}
// Create new journey object with the info that we have so far
/*$journey = new Journey($journey_id,$pickup,$dropoff,$vias,$distance,$vehicle,
$date_time,$return_journey,$meet_greet,$extras);*/
return number_format($final_fare,2);
}
这样我就可以从数据库中读取“附加费”值,然后将其添加到票价计算中。
答案 0 :(得分:1)
我不会在你的JS中检查AIRPORT。如果用户决定打开Firebug并编辑JS,他们可以轻松绕过额外的资费。此外,如果用户在浏览器中禁用了JS,则可能根本不会添加资费。最好的解决方案是使用PHP在服务器端处理所有这些逻辑。
然而,这是一个对PHP脚本的AJAX POST请求的示例:
$.post("checkTarriff.php", { id: identifyingId },
function(data){
console.log(data);
}, "json");