Avatar billede wilweb Nybegynder
16. maj 2002 - 00:05 Der er 12 kommentarer og
2 løsninger

querystring

Hvis jeg skal teste på værdier på nogle variabeler hentet som querystring eller fra en forms felt FX.

tTal1 = request.querystring("tTal1")
tTal2 = request.querystring("tTal2")

eller

tTal1 = request.form("tTal1")
tTal2 = request.form("tTal2")

kommer variablerne altid som en string, selv om det er tal værdier de indholder.

Ville måden at teste med en if sætning være således?

tTalSum = tTal1 + tTal2
eller
tTalSum = CInt(tTal1) + CInt(tTal2)
hvad er mest rigtigt, når man arbejder med variabler.
Håber det er til at forstå.
Avatar billede ocp Nybegynder
16. maj 2002 - 00:08 #1
Hvordan bedømmer du at dine variable kommer som streng?
Avatar billede tmceu Praktikant
16. maj 2002 - 00:09 #2
Hvis de skal indeholde tal, ville jeg først kontrollere dem med IsNumeric funktionen og derefter CInt el.lign.
Avatar billede wilweb Nybegynder
16. maj 2002 - 00:16 #3
Jeg er lige blevet fortalt af en gammel klog mand, at når man sender variabler via querystring eller via en form. Så ville de altid blive sendt som en String, ligegyldigt om det er tal eller tekst man sender.
Derfor en føler ud om emnet!
Avatar billede a1a1 Novice
16. maj 2002 - 00:17 #4
i ASP er der ikke noget der hedder tal....

tTalSum = tTal1 + tTal2

kan godt blive til 11 (hvis tTal1=1 og tTal2=1)

men du kan godt "teste" dine variabler med isNumeric fx.
If isNumeric(tTal1) Then
response.write "tTal1 er et tal " & tTal1
End If
Avatar billede a1a1 Novice
16. maj 2002 - 00:18 #5
tTalSum = CInt(tTal1) + CInt(tTal2)

vil blive til 2 da "compileren" ved du vil have det er tal...:)
Avatar billede tmceu Praktikant
16. maj 2002 - 00:21 #6
De har begge ret som jeg ser det, lidt afhængig af fortolkning.

Skal vi helt der ud, har ASP ingen datatyper overhovedet, det har derimod VBScript som du anvender her :-)

Der findes kun én datatype i VBScript og det er Variant. Men den indeholder så nogle subtyper, bl.a. Integer, Long o.s.v.
Avatar billede a1a1 Novice
16. maj 2002 - 00:21 #7
hvis du deklarere en variabel sån:

tTal1 = 1
ved computeren også det er et tal
med
tTal2 = "1"
ved den det er en streng
men du kan godt sige tTal1 + cint(tTal2)
(det bliver så 2)
Avatar billede wilweb Nybegynder
16. maj 2002 - 00:23 #8
Er det her måden at gøre det på?

tTal1 = request.querystring("tTal1")
tTal2 = request.querystring("tTal2")

tjekTal1 = IsNumeric(tTal1)
tjekTal2 = IsNumeric(tTal2)

if tjekTal1 = true and tjekTal2 = true then
  tTal3 = tTal1 + tTal2
else
  response.redirect("form.asp")
end if
response.write tTal3

?????????
Avatar billede tmceu Praktikant
16. maj 2002 - 00:25 #9
Jeg ville normalt gøre noget i stil med dette:

If Not IsNumeric(request.querystring("tTal1")) Then
response.redirect....
End If

Hvis den kommer forbi dine checks, kan du summere (forudsat at du har flyttet dem over i variablerne)

tTalSum = CInt(tTal1) + CInt(tTal2)
Avatar billede a1a1 Novice
16. maj 2002 - 00:31 #10
men begge ting virker
(bortset fra at tmceu ikke checker tTal2...:) )
Avatar billede wilweb Nybegynder
16. maj 2002 - 00:31 #11
jeg delte point'en imellem jer håber det er ÅK
Avatar billede a1a1 Novice
16. maj 2002 - 00:32 #12
:) 12-14 :)
Avatar billede tmceu Praktikant
16. maj 2002 - 00:34 #13
Helt ok, for jeg fik de fleste :-)

- kan I ikke huske hvordan det var at dele en Mars med lillebror el. -søster, da vi var børn :-)
Avatar billede wilweb Nybegynder
16. maj 2002 - 00:37 #14
Joh da, jeg er stadig væk ikke kommet mig helt over det endnu!
:>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester