Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Wie kann ih ein Session-Wert mit einem Request-Wert addieren





Frage

ich übergebe ein paar Werte und die zweite seite empfängt die daten: <% If Request("gebot") = "" Then Session("gebot") = Request("startbetrag") else Session("gebot") = Request("gebot") End If %> nun möchte ich gerne eine neue session anlegen mit dem namen "mingebot". Ich habe nun wie folgt versuchen zu addieren: Session("mingebot") = (Session("gebot") + (plusbetrag)) bzw. Session("mingebot") = Session("gebot") + (plusbetrag) Wenn ich die Werte 100 und 10 übergebe, dann bekomm ich als Ergebniss 10010 und nicht 110. Ich vermute, das er beide Werte als Text sieht und nicht als Zahl. Was kann ich da jetzt machen oder ist die Vermutung falsch und ich habe ne falsche addition gewählt ? Gruß

Antwort 1 von Karl

Hi teccer,

Goldrichtig, Deine Vermutung.

ALLE FORM ODER GET-PARAMETER SIND IMMER TEXT.

TypeCasting ist die Zauberformel!

Dafür gibt es in VB (VB-Script) jede Menge Functionen.

hier ein paar davon...

Bool: blWert = CBool(Ausdruck)
Integer: intWert = CInt(Ausdruck)
LongInteger lngWert = CLng(Ausdruck)
Double: dblWert = CDbl(Ausdruck)
Währung: curWert = CCur(Ausdruck)
Datum: datWert = CDate(Datum)

<%
If Request("gebot") = "" Then
Session("gebot") = CDbl(Request("startbetrag"))
else
Session("gebot") = CDbl(Request("gebot"))
End If
%>

mfg Karl



Antwort 2 von Andreas Stoll

Hi,

ausserdem sollte man immer prüfen, ob die Übergabeparameter wirklich einen Zahl ist, da das ganze sonst spätesten beim DB-Zugriff in die Hose geht. Also entweder mit javascript auf der Clientseite, wobei dann aber zuerst zu checken ist, ob Javascript aktiviert ist oder mit Ehrenrunde und ASP.

Ciao
Andreas

Antwort 3 von teccer

hi Karl, yo das war es doch, jetzt geht es. Es muss ich nur noch ne Möglichkeit suchen, die Zahlen so zu runden, wie ich das haben möchte und ist alles ok

Antwort 4 von Karl

Hi teccer,

Auch dafür gibt es in VB (VB-Script) einige Functionen.

hier ein paar davon...


MeinGeld = FormatCurrency: Gibt einen als Währungsbetrag formatierten Ausdruck mit dem in der Systemsteuerung definierten Währungssymbol zurück.
MeinGeld = FormatCurrency(Ausdruck[, AnzDezimalstellen[, FührendeNull[, KlammernFürNegativeWerte[, ZiffernGruppieren]]]])
MeinGeld = FormatCurrency(1000) MeinGeld enthält 1.000,00 DM

MeineZahl = FormatNumber: Gibt einen als Zahl formatierten Ausdruck zurück.
MeineZahl = FormatNumber(Ausdruck[, AnzDezimalstellen[, FührendeNull[, KlammernFürNegativeWerte[, ZiffernGruppieren]]]]).
Zahl = 1234.123456789
MeineZahl = FormatNumber(Zahl, 4) MeineZahl enthält 1234,1235.

Round-Funktion
Gibt eine auf die angegebene Anzahl Dezimalstellen gerundete Zahl zurück.
Round(Ausdruck[, AnzDezimalstellen])
Zahl = 1234.123456789
MeineVar = Round(Zahl, 2) MeineVar enthält 1234,12.

mfg Karl


Antwort 5 von teccer

Hey Karl,

die Round kenn ich. Da versuche ich auch die ganze Zeit, was mit auf die Beine zu stellen. Kann ich Round auch direkt für die Ausgabe optimieren. Bei

<% =objRS(Round("Max von Gebot")[,2]) %>
oder
<% Round(=objRS("Max von Gebot")[,2]) %>

oder ähnlichen Schreibweisen krieg ich nämlich ne Fehlermeldung.

Der Ausdruck alleine
<% =objRS("Max von Gebot") %>

Das Format Currency kann ich leider nicht verwenden, da ich alles in € haben möchte. Aber das ist nicht tragisch, denn ich habe einfach ein € dahinter gesetzt. Ok bei keinem Wert steht halt das arme Zeichen ganz alleine so da, aber na ja, es gibt schlimmeres

Gruß

Antwort 6 von Karl

Hi teccer,

Nein, Round ist eine Funktion mit Rückgabewert in eine Variable.

Benutze FormatNumber! Damit kannst Du direkt ins Response - Object ausgeben.

Beachte: Wenn Du die Zahlen sowohl für die Ausgabe als auch für eine interne Weiterverarbeitung nutzen möchtest, musst Du Round benutzen und VOR mathematischen Operationen runden. Ansonsten gibt es Differenzen zwischen den einzelnen Summen oder Produkten in der Anzeige und im abgespeicherten Wert.

(Sind zwar nur Cents, aber immerhin, Buchhaltungen akzeptieren dies nicht [Finanzämter auch nicht]).

Ist klar, oder?

mfg Karl





Antwort 7 von teccer

Hi Karl,

also mit meiner schreibweise stimmt was nicht. Ich bekomm ne Fehlermeldung, ich wußte schon immer, das ich blond bin, ich muss doch bei FormatNumber

<% FormatNumber(=objRS("Max von Gebot")) %>

schreiben, oder ? Wenn richtig wieso Fehlermeldung, das es dass nicht gibt ?

Gruß



Antwort 8 von Karl

Hi teccer,

korrekt:

<% = FormatNumber(objRS("Max von Gebot"),AnzDezimalstellen ) %>

mfg Karl

Antwort 9 von teccer

Hi Karl,

ich sach ja, ich bin blond *grins*

Dabke für Deine Hilfe. Würde mich freuen,wenn Du mal bei 5x24.de
vorbeischaust. Melde Dich doch einfach an und mach was mit. Eine abgespeckte Version von 5x24 wird es in ein paar Tagen auch als NetForum geben. Gehe einfach in 5x24.de, melde dich an, besuche ein Forum und wenn Du mich ( Mod. Pierre Rohde )( gefunden hast, dann schreib mir ne Mail, dann posten wir mal zusammen in 5x24.de

Gruß
Dein Pierre

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: