Geschrieben von Jane. am 11.11.2014 um 16:57:
PHP Formular, Hilfe!
Hallo zusammen,
ich habe ein Problem bei der Erstellung eines Formulars mit PHP. Eigentlich habe ich alles gemacht, aber ich bekomme einfach keine Ausgabe! Ich brauche dringend Hilfe.
Die Aufgabenstellung lautet wie folgt:
Eine Omnibusgesellschaft berechnet für Fahrscheine 28 Cent pro Kilometer. Der Fahrgast gibt auf der Internetseite des Unternehmens die Fahrtstrecke in km an und wählt zwischen drei Tarifklassen:
Normaltarif, Schüler, Kind.
Für Schüler gibt es 25% und für Kinder 30% Ermäßigung.
Weitere Informationen:
- Datenfeld Strecke soll geprüft werden, ob dieses numerisch ist.
- Bei einer Strecke von >= 20 km beträgt der kmPreis 25 Cent.
- Bei Auswahl des Tarifs Schüler soll zusätzlich der variable Text: "25% Ermäßigung" erscheinen.
- Bei Auswahl des Tarifs Kind soll zusätzlich der variable Text: "30% Ermäßigung" erscheinen.
Es sollen folgende Ausgaben erfolgen:
- eingegebene Fahrtstrecke
- kmPreis
- berechneter Fahrpreis
- Variabler Text
Mein "selbstgeschriebenes" Programm sind bis jetzt noch so aus:
<html>
<head>
<title>Fahrpreis</title>
</head>
<body>
<form>
<p><input type="radio" name="tarif" value="normal" /> Normaltarif</p>
<p><input type="radio" name="tarif" value="schueler" /> Schülertarif</p>
<p><input type="radio" name="tarif" value="kind"/> Kindertarif</p>
Bitte geben Sie die Streckenlänge an: <br>
<p><input name="strecke" size="10" maxlength="15" value="" />
<?php echo $_POST['strecke'];?> in km</p>
<p><input type="submit" value="Senden" /></p>
</form action="" method="post">
<?php
$preisn=0.28;
$preisr=0.25;
$preiss=0.28*0.75;
$preisk=0.28*0.7;
if (is_numeric($_POST['strecke']))
{
$gesamtpreis=$preis*$_POST['strecke'];
if (($_POST['tarif']=='normal') and ($_POST['strecke']<20))
{
$gesamtpreis=$preisn*$_POST['strecke'];
}
elseif (($_POST['tarif']=='normal') and ($_POST['strecke']>=20))
{
$gesamtpreis=$preisr*$_POST['strecke'];
}
elseif ($_POST['tarif']=='schueler')
{
$gesamtpreis=$preiss*$_POST['strecke'];
$text='25% Ermäßigung';
}
elseif ($_POST['tarif']=='kind')
{
$gesamtpreis=$preisk*$_POST['strecke'];
$text='30% Ermäßigung';
}
else {echo 'Bitte wählen Sie Ihren Tarif aus.';}
}
$kmpreis=($gesamtpreis)/($_POST['strecke']);
echo '<p>Bei einer Fahrtstrecke von '.$_POST['strecke'].' km ergibt sich bei einem
Kilometerpreis von '.$kmpreis.' der Gesamtpreis von '.$gesamtpreis.'</p>';
echo "Sie erhalten $text";
?>
</body>
</html>
Mir ist klar, dass mein variabler Text nicht variabel ist aber das ist glaub ich noch mein kleinstes Problem. Was hab ich falsch gemacht?
Geschrieben von Jane. am 12.11.2014 um 20:02:
suuuper danke dir!
Aber irgenwie funktioniert's noch immer nicht so wie ich will. :/
Ich bekomme jetzt zwar eine Ausgabe, aber ich habe noch folgende Probleme:
Die Berechnungen macht das Programm teilweise richtig! ABER zum einen wird nicht geprüft ob das Datenfeld "Strecke" numerisch ist und zum anderen bekomme beim Aufrufen der PHP Seite eine Fehlermeldung: "Warning: Division by zero in F:\xampp\htdocs\hausaufgaben\fahrpreis1.php on line 56"
also irgendwas ist da faul, aber ich versteh diese verschachtelten if-Befehle nicht so richtig. Vermutlich hab ich da mal wieder was falsch gemacht.
Außerdem weiß ich nicht wie man so einen variable Text hinzufügen kann.
Ich hoffe ich verlang nicht zu viel
Danke im Voraus.