Avatar billede bodil_bruun Nybegynder
02. maj 2001 - 15:09 Der er 10 kommentarer og
1 løsning

tal forvandler sig til string?

Jeg har en side hvor brugeren kan indstille nogle parametre.
eksempel:
<input type= \"checkbox\" name = \"navn\" value = \"1\">
Formen fører til en ny side hvor jeg fanger parametern med følgende kode:
navn= request(\"navn\")
if navn >< 1 then navn = 0 end if
så bliver alt data vist - og det er ok
Hvis brugeren også mener, at det er ok, så trykker han på en knap i en form hvor jeg har skrevet
<input type = \"hidden\" name = \"navn\" value=\"<%request(\"navn\")%>\">
På den ny side som skal gemme i database henter jeg parametren med min gamle kode
if navn >< 1 then navn = 0 end if
og så får jeg følgende fejlmeddelse:
Typerne passer ikke sammen: \'[string: \"\"]\'<BR>

Min variabel er blevet til en string? Hvorfor? Hvordan får jeg den til at lade være med det, så jeg kan genbruge kode ?
det sker også når jeg sender via  response.write\"<a href=kvit.asp?navn=\" &(Request(\"navn\"))&\">osv
Avatar billede sone Nybegynder
02. maj 2001 - 15:12 #1
request returnerer altid en streng.
Hvis du efterfølgende vil lave tal-triks med det, så skal du bruge CInt, CLng eller andet.
Avatar billede nute Nybegynder
02. maj 2001 - 15:12 #2
når du tar imot et parameter, så blir det alltid konvertert til en string. Du skal heller benytte:

navn= CInt(request(\"navn\"))

MEN....

if navn >< 1

fungerer ikke....du skal bruke

if navn <> 1

/nute
Avatar billede netsrac Praktikant
02. maj 2001 - 15:18 #3
Ja eller formatnumber hvis det er et kommatal http://www.asp.dk/docs/vbscript/vbstoc.htm
Avatar billede bodil_bruun Nybegynder
02. maj 2001 - 15:52 #4
Nu har jeg skrevet CInt(request(\"navn\")) og if navn<>1 osv når jeg modtager data på side 2
stadig får jeg en fin liste.
når jeg sender data videre til side3 og modtager dem med CInt(request(\"navn\")) får jeg følgende fejl:
Typerne passer ikke sammen: \'CInt\'
Avatar billede nute Nybegynder
02. maj 2001 - 15:55 #5
i mitt hode så høres det forresten litt merkelig ut at rs(\"navn\") er et tall. Vanligvis inneholder et navn bokstaver. Fx mitt *navn* er nute, noe som er veldig vanskelig å konvertere til et tall...
Avatar billede bodil_bruun Nybegynder
02. maj 2001 - 16:08 #6
Navn er et parameter, der kan være 1 eller 0. Hvis den er 1, så skal jeg lave en søgning og få en liste med kolonnen navn er medtaget. Der er mange parametre ud over navn kan man vælge at se adresse, postnr, telefonnummmer osv osv. Listens udseende bestemmes på side 1. Listen ses på side to. Det fungerer fint. Først når listens udseende skal gemmes på side tre går det galt i overførslen af parametrerne
Avatar billede nute Nybegynder
02. maj 2001 - 16:15 #7
prøv å skriv ut \'navn\' for å se om den inneholder en verdi...
Avatar billede bodil_bruun Nybegynder
03. maj 2001 - 11:54 #8
Jeg sender navn fra side 1 til side 2 via: <input type= \"checkbox\" name = \"navn\" value = \"1\">
på side to har jeg testet navn via koden:

response.write(\" navntest1 \" & (request(\"navn\")) &\" <br>\")
response.write(\" navntest2 \" & navn &\" <br>\")
navn= CInt(request(\"navn\"))
if navn <> 1 then navn = 0 end if
response.write(\" navntest3 \" & navn &\" <br>\")

navntest1 er enten 1 eller tom, alt efter mine kryds på forrige side
navntest2 er altid tom
navntest3 er enten 1 eller 0, som den skal være

jeg sender navn videre fra side 2 til side 3 via: <input type = \"hidden\" name = \"navn\" value=\"<% request(\"navn\") %>\">
lige over formen har jeg: response.write(\" navntest4 \" & (request(\"navn\")) &\" <br>\")
Den er viser også enten 1 eller er tom, som den skal

Hvis jeg modtager navn på side 3 med

response.write(\" navntestb1 \" & request(\"navn\") &\" <br>\")
response.write(\" navntestb2 \" & navn &\" <br>\")
navn= CInt(request(\"navn\"))
if navn <> 1 then navn = 0 end if
så får jeg følgende fejl Typerne passer ikke sammen: \'CInt\'
uanset om navn er 1 eller 0
begge navnetest er tomme uanset om den ene burde være 1


Avatar billede bodil_bruun Nybegynder
03. maj 2001 - 11:59 #9
Det der giver fejlmeddelsen i ovenstående er linien: navn= CInt(request(\"navn\"))
hvis jeg fjerne CInt får jeg  fejlen Typerne passer ikke sammen: \'[string: \"\"]\' for denne linie: if navn <> 1 then navn = 0 end if
Avatar billede godtnok Nybegynder
03. maj 2001 - 14:16 #10
Hej,

din fejl skyldes at en checkbox returer on / off som værdier og ikke et tal.

Derfor bliver du nødt til at lave følgende:

if request.form(\"navn\") = \"on\" then
  navn = 1
elseif request.form(\"navn\") = \"off\" then
  navn = 0
End if

og så køre videre derfra
Avatar billede bodil_bruun Nybegynder
03. maj 2001 - 14:35 #11
Jeg har ikke problemer fra side 1 til 2. Det er der min checkbox er.
Problemet LÅ (indtil for 3 minutter siden)fra side 2 til side 3.
Nu har jeg droppet alt om Cint og behandler mine tal som tekst. Så har jeg erstattet linien
<input type = \"hidden\" name = \"navn\" value=\"<%request(\"navn\")%>\">
med
<input type = \"hidden\" name = \"navn\" value=\"<% = navn %>\"> Og nu virker det.
Måske havde det været nok bare at sætte det ekstra lighedstegnet ind - men jeg har været langt rundt og intet i mit program ligner sig selv.
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