Autor |
Nachricht |
cyntonix
Threadersteller
Dabei seit: 18.06.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 18.06.2007 16:40
Titel Formular + Berechnung |
|
|
hi erstmal,
hab hier im Forum schon ein bisschen was gefunden aber leider nicht alles was ich benötige um mein Formular zum "Laufen" zu bringen.
ich möchte in php ein Formular erzeugen das folgendermaßen aussieht:
LINK
ich habs in 3 werte aufgeteilt welche sich alle am schluss multiplizieren sollen.
bei wert2 und wert3 haut es ja auch super hin nur wert eins nicht.
ich möchte das man 2,5mm² auswählt aber als wert nicht 2,5 sonder z.B. 0,5 verwendet wird.
wie kann ich das realisieren?
hier der code:
Code: | <form method="post" action="">
<table border="0" width="500">
<tr>
<td width="93">
<p>Klemmengröße: </p>
</td>
<td width="397">
<p><select name="wert1" size="3">
<option selected value="0,75">2,5 mm²</option>
<option value="1">4 mm²</option>
<option value="1,2">6 mm²</option>
</select></p>
</td>
</tr>
<tr>
<td width="93">
<p>Klemmenanzahl: </p>
</td>
<td width="397">
<p><input type="text" name="wert2" />
</p>
</td>
</tr>
<tr>
<td width="93">Klemmleistenanzahl: </td>
<td width="397"><input type="text" name="wert3"></td>
</tr>
</table>
<p> </p>
<p> </p>
<p><input type="submit" value="berechnen" />
</p>
</form>
<?php
$ergebnis = intval($_POST['wert1']) * intval($_POST['wert2']) * intval($_POST['wert3']);
?>
Die Länge der Klemmleiste beträgt: <?php echo $ergebnis; ?>
mm</body> |
vielen dank schonmal
|
|
|
|
|
possmann
Dabei seit: 18.04.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 18.06.2007 17:03
Titel
|
|
|
das liegt daran, dass die kommazahlen in eine integerzahl umgewandelt wird (ganze zahl). Somit fallen die kommastellen weg. so wird aus 0,25 = 0 und die multiplikation mit Y und Z ergeben logischer weise 0.
probier es mal mit der funktion
floatval () anstatt intval()
|
|
|
|
|
Anzeige
|
|
|
cyntonix
Threadersteller
Dabei seit: 18.06.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 18.06.2007 17:15
Titel
|
|
|
ok
ich habs getest wenn ich alle werte auf floatval mache und wenn ich nur wert1 auf floatval hab.
geht leider immer noch nicht, weiß auch nicht warum, denn deine erklärung war sinnvoll. muss aber irgendwo noch nen fehler drin haben.
Code: | <form method="post" action="">
<table border="0" width="500">
<tr>
<td width="93">
<p>Klemmengröße: </p>
</td>
<td width="397">
<p><select name="wert1" size="4">
<option selected value="0,75">QTC 2,5 mm²</option>
<option value="1">ST 2,5 mm²</option>
<option value="1,2">ST 4 mm²</option>
<option value="12">ST 6mm²</option>
</select></p>
</td>
</tr>
<tr>
<td width="93">
<p>Klemmenanzahl: </p>
</td>
<td width="397">
<p><input type="text" name="wert2" />
</p>
</td>
</tr>
<tr>
<td width="93">Klemmleistenanzahl: </td>
<td width="397"><input type="text" name="wert3"></td>
</tr>
</table>
<p> </p>
<p> </p>
<p><input type="submit" value="berechnen" />
</p>
</form>
<?php
$ergebnis = floatval($_POST['wert1']) * floatval($_POST['wert2']) * floatval($_POST['wert3']);
?>
Die Länge der Klemmleiste beträgt: <?php echo $ergebnis; ?>
mm |
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 44
Geschlecht:
|
Verfasst Mo 18.06.2007 19:01
Titel
|
|
|
PHP rechnet intern mit Punkt als Dezimalstelle.
Nimm also entweder im Feld "0.75" oder wandele die Zahl um.
Code: | $zahl = '2,5';
$float = (float)str_replace(',', '.', $zahl); |
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 47
Geschlecht:
|
Verfasst Mo 18.06.2007 23:15
Titel
|
|
|
OK. Das vorhandene Problem hat tacker ja erkannt und gelöst.
Also jetzt noch Anmerkungen zum Rechnen mit PHP.
Eventuell tauchen nämlich sonst die nächsten Probleme auf.
Wenn ich mit PHP rechne, setze ich meist die bc-Funktionen ein.
In diesem Fall wird das nicht nötig sein.
Aber falls es beim Rechnen mal zu Problemen kommt, erkläre ich das mal...
Schau:
<?php echo $res = 822.53-822.52; ?>
Da sollte dann wohl 0.01 rauskommen, aber es kommt (auf den meisten Plattformen) 0.09999999 raus.
Das ist ein normales Problem, wenn ein Computer mit Gleitkommazahlen rechnet:
http://de.wikipedia.org/wiki/Flie%C3%9Fkommazahlen#Ausl.C3.B6schung
Dieses kann man aber umgehen, wenn man die mathematischen Funktionen mit beliebiger Genauigkeit einsetzt.
Und noch eine Anmerkung zum Code:
Änder mal die folgende Zeile um:
Code: | <form method="post" action=""> |
Und mach daraus das:
Code: | <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> |
|
|
|
|
|
|
|
|
Ähnliche Themen |
Javascript PDF Formular Berechnung
formular mit automatischer berechnung.
acrobat9 pro - PDF Formular Berechnung Menge Summe Excel?
Datenstrom - Berechnung
berechnung von datenheadern
Rollendurchmesser Berechnung
|
|