09. marts 2006 - 09:27Der 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!
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
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)
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 "
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 ;-)
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.