2012-11-12 62 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最好是当他们提交文本框所在的表单时。 –