2016-04-26 15 views
0

Ich habe eine Hölle Zeit für die Erstellung eines PHP-Rechners für meine Arbeit der Website für einen besonderen Bedarf Transportdienst (Shuttle-Busse) Ich habe die HTML und PHP eingerichtet, aber ich kann nicht scheinen Mach es zur Arbeit.PHP Transport Rate Berechnungen

Dies ist, was ich brauche, um herauszufinden, wie man die PHP tun, so dass ich es auf der Seite Dienste setzen kann. Ich kann es nicht richtig verstehen.

Constant Rate: $ 50 für 30 Minuten von Trans Zusätzliche Set Kosten: 5% auf

besteuert

Hier ist der HTML

<form method="get" action="calculationtable.php"> 
    <p>Time Traveled: 
    <input type="text" name="hours" id="hours" /> 
    </p> 
    <p>Transport Rate ($100/1hr): 
    <input type="text" name="rate" id="rate" /><br /><br /> 
    <input type="submit" /> 
    </p> 

</form> 

und die PHP

<?php 

$hours = (int) $_GET["hours"]; 
$rate = (int) $_GET["rate"]; 

$overtime = max($hours - 40, 0); 
$pay += $overtime * $rate * 1.5; 
$pay += ($hours - $overtime) * $rate; 

echo "Hours Traveled: " . $hours . "<br>"; 
echo "Transport rate (per hour): $" . number_format($rate, 2) . "<br>"; 
echo "Additional Hours: " . $overtime . "<br>"; 
echo "Your Total is: $" . number_format($pay, 2) . "<br>"; 
?> 
+2

definieren: „kann nicht scheinen, um zu arbeiten“ – Sammitch

+0

Sie könnten den ersten '$ pay + =' auf '$ ändern müssen bezahlen = '. Nicht sicher, ob Sie eine Variable erhöhen können, bevor Sie sie in PHP deklariert haben oder nicht. – AeroX

+0

Wenn ich versuche und zu verarbeiten, was auch immer ich gebe PHP bricht und gibt mir keine Antwort. – cinematicme

Antwort

0

Ein paar Dinge ist, initialisiere $ pay wie von @AeroX angegeben.

(float)$pay = 0; 

... dann inkrementieren. Auch wenn PHP wirklich gut "herausfindet, was du meinst", wähle ich mich nicht davon ab. Beispiel:

(int)$hours = 0; 
(int)$rate = 0; 
if(isset($_GET['hours']) && is_numeric($_GET['hours'])) $hours += filter_input(INPUT_GET, 'hours'); 
if(isset($_GET['rate']) && is_numeric($_GET['rate'])) $rate += filter_input(INPUT_GET, 'rate'); 
0

Wie andere bereits erwähnt haben, aktivieren Sie die Fehlerberichterstattung zum Debuggen. Wie @AeroX sagte, müssen Sie die Variable initialisieren, bevor Sie inkrementieren können.

Hier ist ein funktionierendes Beispiel mit dem Teil Steuer hinzugefügt in

$hours = 0.5; 
$rate = 100; 

$overtime = max($hours - 40, 0); 
$pay = $overtime * $rate * 1.5; 
$pay += ($hours - $overtime) * $rate; 
$pay = $pay + ($pay * 0.05); 

echo "Hours Traveled: " . $hours . "<br>"; 
echo "Transport rate (per hour): $" . number_format($rate, 2) . "<br>"; 
echo "Additional Hours: " . $overtime . "<br>"; 
echo "Your Total is: $" . number_format($pay, 2) . "<br>";