mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 05.12.2024 22:46 Benutzername: Passwort: Auto-Login

Thema: Formular + Berechnung vom 18.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Formular + Berechnung
Autor Nachricht
cyntonix
Threadersteller

Dabei seit: 18.06.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 18.06.2007 16:40
Titel

Formular + Berechnung

Antworten mit Zitat Zum Seitenanfang

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&nbsp;Länge&nbsp;der&nbsp;Klemmleiste&nbsp;beträgt:  <?php echo $ergebnis; ?>
 mm</body>


vielen dank schonmal
  View user's profile Private Nachricht senden
possmann

Dabei seit: 18.04.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 18.06.2007 17:03
Titel

Antworten mit Zitat Zum Seitenanfang

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()
  View user's profile Private Nachricht senden
Anzeige
Anzeige
cyntonix
Threadersteller

Dabei seit: 18.06.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 18.06.2007 17:15
Titel

Antworten mit Zitat Zum Seitenanfang

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&nbsp;Länge&nbsp;der&nbsp;Klemmleiste&nbsp;beträgt:  <?php echo $ergebnis; ?>
 mm
  View user's profile Private Nachricht senden
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 44
Geschlecht: Männlich
Verfasst Mo 18.06.2007 19:01
Titel

Antworten mit Zitat Zum Seitenanfang

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);
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 47
Geschlecht: Männlich
Verfasst Mo 18.06.2007 23:15
Titel

Antworten mit Zitat Zum Seitenanfang

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'] ?>">
  View user's profile Private Nachricht senden
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.