Der folgende Beitrag wurde am 06. 07. 2007, 22:54 Uhr von leo veröffentlicht.
Hallo,
ich möchte über radio-Buttons die Berechnungsmethode auswählen und dann das jeweilige mit den beiden Zahlen aus dem Formular durchführe, aber weiß jetzt nicht wie ich mit php etwas in ein ein "Feld" setzen kann, hab es ja bisher nur komplett neu ausgegeben und wenn ich jetzt den code wie er bisher ist aufrufe, schmeizt der mir direkt ne meldung "keine division durch 0". Also geht der den php code schon durch bevor ich auf den submit-Button geklickt habe?
habe mir folgendes gebastelt:
<html>
<head>
</head>
<body>
<form name="Addition" action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="text" name="zahl1" value="" length="10"><br>
<input type="text" name="zahl2" value="" length="10"><br>
<input type="submit" name="addition" value="berechne"><br>
<input type="radio" name="auswahl" value="1">+
<input type="radio" name="auswahl" value="2">-
<input type="radio" name="auswahl" value="3">*
<input type="radio" name="auswahl" value="4">/
</form>
<?php
if($_REQUEST["addition"]){
$wahl=$_POST["auswahl"];
$zahl1=$_POST["zahl1"];
$zahl2=$_POST["zahl2"];
if($wahl==1){
$ergebnis=$zahl1+$zahl2;
echo "<input type='text' name='ergebnis' value='$ergebnis'>";
}
if($wahl==2){
$ergebnis=$zahl1-$zahl2;
echo "<input type='text' name='ergebnis' value='$ergebnis'>";
}
if($wahl==3){
$ergebnis=$zahl1*$zahl2;
echo "<input type='text' name='ergebnis' value='$ergebnis'>";
}
if($wahl==4){
$ergebnis=$zahl1/$zahl2;
echo "<input type='text' name='ergebnis' value='$ergebnis'>";
}
}
?>
</body>
</html>
Gruß
Der folgende Beitrag wurde am 07. 07. 2007, 01:13 Uhr von kungschu veröffentlicht.
Hallo.
Schreibe anstelle vonif($_REQUEST["addition"]){...if (isset($_POST['addition'])){...
Wieso willst du das Ergebnis in einem Textfeld ausgeben?
Das könnte etwas so aussehen:
<input type="text" name="ergebnis" value="<php if (!empty($ergebnis)) {echo htmlspecialchars($ergebnis);}?>"
Beachte: Daten _niemals_ ungefiltert aus einem Formular übernehmen!
MfG, Kungschu.
--
The computer is not willing? The bug is well hidden? The release is tomorrow?
Der folgende Beitrag wurde am 07. 07. 2007, 01:20 Uhr von kungschu veröffentlicht.
Hallo.
> Das könnte etwas so aussehen:
>
> <input type="text" name="ergebnis" value="<php if (!empty($ergebnis)) {echo htmlspecialchars($ergebnis);}?>"
>
Hier fehlt natürlich ein >.
MfG, Kungschu.
--
The computer is not willing? The bug is well hidden? The release is tomorrow?
Der folgende Beitrag wurde am 07. 07. 2007, 14:50 Uhr von leo veröffentlicht.
Hab eigentlich alles einbauen können außer das mit der Ausgabe in dem Textfeld.
<html>
<head>
</head>
<body>
<form name="Addition" action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="text" name="zahl1" value="" length="10"><br>
<input type="text" name="zahl2" value="" length="10"><br>
<input type="submit" name="addition" value="berechne"><br>
<input type="radio" name="auswahl" value="1">+
<input type="radio" name="auswahl" value="2">-
<input type="radio" name="auswahl" value="3">*
<input type="radio" name="auswahl" value="4">/
<p>
<input type="text" name="ergebnis" value="<?php if (!empty($ergebnis)) {echo htmlspecialchars($ergebnis);} ?>">
</form>
<?php
if(isset($_POST["addition"])){
$wahl=$_POST["auswahl"];
$zahl1=$_POST["zahl1"];
$zahl2=$_POST["zahl2"];
if($wahl==1){
$ergebnis=$zahl1+$zahl2;
echo "<br>",$zahl1," + ",$zahl2," = ",$ergebnis," \n";
}
if($wahl==2){
$ergebnis=$zahl1-$zahl2;
echo "<br>",$zahl1," - ",$zahl2," = ",$ergebnis," \n";
}
if($wahl==3){
$ergebnis=$zahl1*$zahl2;
echo "<br>",$zahl1," * ",$zahl2," = ",$ergebnis," \n";
}
if($wahl==4){
if($zahl2==0){
echo $zahl1,"/ ", $zahl2, " ist nicht möglich";
}
else{
$ergebnis=$zahl1/$zahl2;
echo "<br>",$zahl1," / ",$zahl2," = ",$ergebnis," \n";
}
}
}
?>
</body>
</html>
Der folgende Beitrag wurde am 07. 07. 2007, 19:44 Uhr von kungschu veröffentlicht.
Hallo.
> Hab eigentlich alles einbauen können außer das mit der Ausgabe in dem Textfeld.
Und was ist nun konkret das Problem? Positioniere den HTML-Teil hinter den verarbeitenden Script-Teil; sonst kann $ergebnis ja nur leer sein (und somit keine Ausgabe erfolgen), da $ergebnis in deinem Code erst danach gefüllt wird.
MfG, Kungschu.
--
The computer is not willing? The bug is well hidden? The release is tomorrow?
Der folgende Beitrag wurde am 07. 07. 2007, 07:42 Uhr von dedlfix veröffentlicht.
echo $begrüßung;
> <input type="text" name="ergebnis" value="<php if (!empty($ergebnis)) {echo htmlspecialchars($ergebnis);}?>"
> Beachte: Daten _niemals_ ungefiltert aus einem Formular übernehmen!
Generell hast du Recht, aber $ergebnis ist kein Datum aus einem Formular, sondern das Ergebnis einer numerischen Berechnung. Auch bei ungültigen Eingabewerten kommt dabei eine Zahl raus. Darauf htmlspecialchars() anzuwenden ist zwar nicht schädlich aber unnötig.
Wichtiger wäre es, die Formulardaten vor der Weiteverarbeitung durch floatval() zu schicken, denn diese Funktion garantiert einen Fließkomma-Wert bei jeder Art von Eingabe. Und bei der Division ist anschließend noch eine Prüfung auf 0 als zweiter Eingabewert erforderlich, will man den Divison-durch-Null-Fehler abfangen.
echo "$verabschiedung $name";
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4