0

我有一个功能可以检查接送地址中的搜索是否包含机场,如下所示:-

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”金额的“附加费”。因此,如果将机场设置为盖特威克机场,则会将其发送到关税.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);

}

这样我就可以从数据库中读取“附加费”值,然后将其添加到票价计算中。

4

1 回答 1

1

我不会在你的 JS 中检查 AIRPORT。如果用户决定打开 Firebug 并编辑 JS,他们可以轻松绕过额外费用。此外,如果用户在浏览器中禁用了 JS,则可能根本不会添加关税。最好的解决方案是使用 PHP 在服务器端处理所有这些逻辑。

不过,这里有一个对 PHP 脚本的 AJAX POST 请求的示例:

$.post("checkTarriff.php", { id: identifyingId },
 function(data){
   console.log(data);
 }, "json");
于 2012-11-12T09:19:04.673 回答