Avatar billede ravnkilde Nybegynder
09. marts 2006 - 09:27 Der er 7 kommentarer og
1 løsning

Data fra radio group (formular) skrives ned i database

Hej!

Jeg har en formular med en radio gruppe (Organisation) på tre valg (det skal kun være muligt for brugeren at vælge én af disse). Den først radio knap har value "Modtager1", anden radio knap har value "Modtager2" og radio knap 3 har value "Modtager3".

Formularens data skal skrives til min database med flg. felter: ID (auto), Modtager1 (beløb), Modtager2 (beløb), Modtager3 (beløb). Senere i forløbet skal jeg lave en sammentælling af de beløb, der skrives ned i databasen.

Formularens data er jeg vel næsten nødt til at "konvertere" således at et valg på "Modtager1" giver 100 i databasens felt "Modtager1", et valg på "Modtager2" giver 100 i databasens felt "Modtager2" og endelig et valg på "Modtager3" giver 100 i databasens felt "Modtager3".

Jeg forestiller mig noget i retning af:

Der checkes hvilken radio knap, der er valgt:
...
if Modtager1 then 100
else
Modtager2 then 100
else
Modtager3 then 100
...

Jeg mener godt jeg kan definer SQL'en, der skriver data ned i databasen, blot jeg får lidt assistance til at håndtere de tre valg. Venligst hjælp!
Avatar billede softspot Forsker
09. marts 2006 - 09:58 #1
Jeg er ikke helt sikker på om jeg har forstået hvad du mangler, men såvidt jeg kan se så har du vel behov for 3 variabler der afspejler værdien af det som brugeren vælger, så du kan indsætte disse i databasen (uden at SQL-sætningen i øvrigt skal tage stilling til hvad der er valgt)...?

Jeg forestiller mig noget i stil med dette:

modtager1 = 0
modtager2 = 0
modtager3 = 0
orgValue = lcase(request.form("organisation"))
if orgValue = "modtager1" then
  modtager1 = 100
elseif orgValue = "modtager2" then
  modtager2 = 100
elseif orgValue = "modtager3" then
  modtager3 = 100
end if

' opbyg din SQL-sætning her
Avatar billede ravnkilde Nybegynder
09. marts 2006 - 10:08 #2
Hej igen softspot!

Nedenstående kode giver fejlmeddelelsen: Variable is undefined: 'modtager1'

--- kode start ---

'Radio gruppe
modtager1 = 0
modtager2 = 0
modtager3 = 0
orgValue = lcase(request.form("organisation"))
if orgValue = "modtager1" then
  modtager1 = 100
elseif orgValue = "modtager2" then
  modtager2 = 100
elseif orgValue = "modtager3" then
  modtager3 = 100
end if

'Definer SQL
sSQL = "INSERT into Donation (Entry, modtager1, modtager2, modtager3) values ('" & Now() &"', '" & modtager1 & "', '" & modtager2 & "', '" & modtager3 & "')"

--- kode slut ---
Avatar billede ravnkilde Nybegynder
09. marts 2006 - 10:20 #3
softspot: Jeg har dim'et alle variablerne, og med det kører det.
Avatar billede ravnkilde Nybegynder
09. marts 2006 - 10:40 #4
softspot:

Jeg prøver at lave en sammentælling af alle bidrag i databasen, men får denne fejlmeddelelse: Item cannot be found in the collection corresponding to the requested name or ordinal.
donation_results.asp, line 21

Kan du se hvad problemet er? Jeg har checket min database for rigtig feltnavn.

Koden er:

' Tæller antal kr i modtager1
strSQL = "SELECT SUM(modtager1) FROM Donation"
Set rs = myConn.Execute(strSQL)
Response.Write "Der er " & rs("SUM") & " kr. til modtager1 "  (LINE 21)
Avatar billede softspot Forsker
09. marts 2006 - 10:50 #5
Det er fordi du ikke har givet feltet SUM(modtager1) et navn i resultatet. Du kan gøre dette med AS-operatoren i en SQL-sætning:

strSQL = "SELECT SUM(modtager1) AS modtager1_SUM FROM Donation"
Set rs = myConn.Execute(strSQL)
Response.Write "Der er " & rs("modtager1_SUM") & " kr. til modtager1 "
Avatar billede ravnkilde Nybegynder
09. marts 2006 - 10:58 #6
Det virker, softspot. Smid et svar. Tak endnu engang for din kompetente hjælp! Når der går flere uger mellem hver opgave, mister jeg nemt følingen med det ;-)
Avatar billede softspot Forsker
09. marts 2006 - 11:03 #7
Ja, man skal holdes til ilden (der er Eksperten et godt sted at finde sine udfordringer ;-)).
Avatar billede softspot Forsker
09. marts 2006 - 12:04 #8
Tak for point :)
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