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」の金額の「追加料金」を追加することです。したがって、空港がガトウィック空港に設定されている場合、これは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);

}

データベースから「追加料金」の値を読み取り、これを運賃計算に追加できるようにします。

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 に答える