2012-11-12 5 views
0

J'ai une fonction qui vérifie si une recherche dans l'adresse de pick-up contient un aéroport comme suit: -Envoi demande jquery à un script 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 

} 

Fondamentalement, ce que je besoin de faire est d'ajouter un « supplément » de 'x' si le pick-up contient une adresse d'aéroport. Donc, si un aéroport est défini sur Gatwick, il est alors envoyé à tariff.fare.controller.php qui ajoute "x" au tarif. Je me demandais juste comment serait le meilleur moyen de le faire.

De même, si un utilisateur change la prise en charge d'un aéroport à une adresse d'aéroport nulle, il faut soustraire «x» du tarif.

Toute aide serait très apprécié!

:: EDIT ::

Juste pour ajouter, pour y parvenir, je suis désireux d'utiliser AJAX. Dès qu'un utilisateur entre un aéroport dans l'adresse de pick-up une demande doit être envoyée à ma classe de TariffFareController à la fonction suivante:

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); 

} 

pour que je puisse lire la valeur « en supplément » de la base de données, puis ajoutez ceci au calcul du prix.

+0

Vous cherchez Ajax ou je comprends mal tout à fait votre question. http://api.jquery.com/jQuery.ajax/ – Jelmer

+0

meilleure façon de faire quoi ... les maths, affichage de l'utilisateur, stocker et/ou envoyer des données au serveur ou ... ??? Vraiment pas clair ce dont vous avez besoin. S'il vous plaît décrire les détails et ce que vous avez essayé et fournir un peu de HTML pour aller avec elle – charlietfl

Répondre

1

Je ne mettrais pas le chèque pour AIRPORT dans votre JS. Si l'utilisateur décide d'ouvrir Firebug et d'éditer le JS, il pourrait facilement contourner le tarif supplémentaire. En outre, le tarif peut ne pas être ajouté du tout si l'utilisateur a désactivé JS dans son navigateur. La meilleure solution serait de gérer toute cette logique du côté du serveur avec PHP.

Néanmoins, voici un exemple d'une requête AJAX POST à ​​un script PHP:

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

À peu près ceci et puis certains. J'ai été ce type dans le passé qui édite JS pour contourner les taxes. – Ohgodwhy

+0

Merci pour cela, si cela peut être contourné alors comment pourrais-je faire pour faire ce côté serveur si je dois vérifier si une valeur dans une zone de texte contient une adresse d'aéroport? – nsilva

+0

@nsilva De préférence quand ils soumettent la forme que la zone de texte est. –