PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Preis in 2 Währungen (https://www.php-resource.de/forum/php-developer-forum/82761-preis-in-2-waehrungen.html)

lichtscheu 29-03-2007 22:22

Preis in 2 Währungen
 
Hi Leute,

ich benötige in einem Adminpanel die Möglichkeit 2 Währungen anzugeben. Aber das System läuft nur auf € und bei der Ausgabe wird die andere Währung per Funktion errechnet. Nun möchte ich das Formular aber so abändern das ich auch in der zweiten Währung den Preis eingeben kann, dieser dann in Euro umgerechnet wird und dann in der DB gespeichert wird, leider funktioniert das nicht.

Irgendwie hab ich wohl einen Denkfehler beim Formular selbst, wie würdet ihr das rein gedanklich lösen? Programmieren kann ich es dann hoffentlich selber ^^

mrhappiness 29-03-2007 22:45

Preis in Euro * Umrechnungskurs = Preis in Fremdwährung

Preis in Fremdwährung / Umrechnungskurs = Preis in Euro

Nennt sich Äquivalenz-Umformung ;)

lichtscheu 29-03-2007 22:52

Das habe ich doch bereits, die Preise werden wie gesagt schon errechnet, aber wie lös ich das mit dem Formular, weil wenn ich einfach ein feld für beides mache klappt das net so wie es soll!

mrhappiness 29-03-2007 22:58

Du kannst dir den Wert beider Felder merken und dann prüfen, welcher Wert geändert wurde und denn anderen Wert ausrechnen.

Zum "Merken" kannst du die Werte bspw. in einer Session speichern oder als hidden fields mitschicken

btw: Wenn du genauer schreibst, an welcher Stelle du hängen bleibst, ist's für alle einfacher

lichtscheu 30-03-2007 00:21

Also ich lege beim Erstellen eines neuen Datensatzes eine ID an und leite dann auf das bearbeiten-Formular für diese ID um somit hab ich für anlegen und bearbeiten nur ein Formular. Alle daten die vorhanden sind werden als value ausgegeben so das beim absenden immer alle informationen neu gespeichert werden. Nur mit euro hat das gut geklappt und weil ich das system nur auf euro habe möchte ich es nicht erweitern sondern habe lediglich die 2 funktionen wo die preise ausgegeben werden per funktion eingebunden. Im Adminpanel möchte ich somit wenn per Währung LE der Preis angegeben wird das dieser mit der funktion umgerechnet wird und als € in der DB gespeichert wird. Aber irgendwie klappt es nicht also mach ich was falsch! Hier mal den Code den ich bisher habe:

PHP-Code:

//Preis Formatieren
if($_POST[form_preis_euro] > 0

$_POST[form_preis] = $_POST[form_preis_euro]; 
}
elseif(isset(
$_POST[form_preis_pfund])) 

$_POST[form_preis] = umrechnen_pfund_admin($_POST[form_preis_pfund]); 
}
else 

$_POST[form_preis] = "111111"


Die beiden if´s habe ich bereits mit isset(), == "", >0,<0 ausprobiert aber jedesmal das gleiche. Das else ist für mich lediglich als "Fehlermeldung".

Ich brauch somit einfach etwas das wenn $_POST[form_preis_pfund] einen Preis enthält, dieser in euro umgerechnet wird und anschließend auch richtig formatiert wird.

Die Funktion umrechnen_pfund_admin() holt sich den Kurs aus der DB und rechnet damit den Preis um und gibt ihn per return() auch wieder zurück....

Das klappt ja soweit, nur weil ich eben die Euros als Value angebe und dann mitsende zum speichern, wirkt sich die änderung im formular bei LE leider nicht aus!

Coniaric 30-03-2007 11:48

Wenn das zwei Felder im Formular sind, warum dann

IF und ELSEIF?

Wenn nämlich das IF > 0 ist, führt er elseif doch garnichtmehr aus, oder?

Ich weiß nicht, ob ich Dein Problem richtig verstanden habe,
aber ich würde mal zwei seperate IFs anlegen, um das Problem
leichter einschränken zu können. Umbauen kannst es ja dann immernoch.

Die Frage ist auch, was passiert, wenn einer beide Felder ausfüllt?

wahsaga 30-03-2007 12:05

Zitat:

Original geschrieben von Coniaric
Die Frage ist auch, was passiert, wenn einer beide Felder ausfüllt?
Wer sich diese Frage nicht bereits gestellt (und sie beantwortet) hat, bevor er zu Programmieren anfängt - der sollte seine Arbeitsweise überdenken.


Und wer sich ein bisschen Gedanken um sinnvolles Interface-Design gemacht hat, der hat sich diese Frage schon vorher so beantwortet, dass er gar keine zwei Eingabefelder anbietet - sondern nur eins für den neuen Preis (bisheriger Preis in Euro und Fremdwährung kann ja so angezeigt werden, der muss nicht in ein Formularfeld), und dazu zwei Radiobuttons, mit denen angegeben wird, ob die neue Preisangabe in Euro oder in Fremdwährung ist.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:16 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG