2012-11-12 61 views
0

我有檢查,如果在取件地址搜索包含機場如下功能: -發送的jQuery請求PHP腳本

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

您是否在尋找阿賈克斯還是我完全誤解了你的問題。 http://api.jquery.com/jQuery.ajax/ – Jelmer

+0

做什麼...數學,用戶顯示,存儲和或發送數據到服務器或...的最佳方式?真的不清楚你需要什麼。請概述細節和你已經嘗試過的,並提供一些html去與它一起 – charlietfl

回答

1

我不會把你的JS中的AIRPORT檢查。如果用戶決定打開Firebug並編輯JS,他們可以輕鬆繞過額外的關稅。另外,如果用戶在其瀏覽器中禁用JS,則可能根本不添加該資費。最好的解決方案是使用PHP處理服務器端的所有邏輯。

然而,這裏是一個AJAX POST請求PHP腳本的例子:

$.post("checkTarriff.php", { id: identifyingId }, 
function(data){ 
    console.log(data); 
}, "json"); 
+0

很多這個,然後一些。我曾經是那個編輯JS的人,以避免稅收。 – Ohgodwhy

+0

謝謝你,如果它可以被繞過,那麼如果我需要檢查文本框中的值是否包含機場地址,我該如何去做這個服務器端? – nsilva

+0

@nsilva最好是當他們提交文本框所在的表單時。 –