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å.
Annonceindlæg fra Computerworld
Hvordan bedømmer du at dine variable kommer som streng?
Hvis de skal indeholde tal, ville jeg først kontrollere dem med IsNumeric funktionen og derefter CInt el.lign.
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!
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
tTalSum = CInt(tTal1) + CInt(tTal2) vil blive til 2 da "compileren" ved du vil have det er tal...:)
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.
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)
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 ?????????
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)
men begge ting virker (bortset fra at tmceu ikke checker tTal2...:) )
jeg delte point'en imellem jer håber det er ÅK
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 :-)
Joh da, jeg er stadig væk ikke kommet mig helt over det endnu! :>
Kurser inden for grundlæggende programmering