Avatar billede scooter Nybegynder
24. november 1999 - 14:34 Der er 10 kommentarer og
1 løsning

split selectbox-værdier og indsæt i db

jeg har et select multiple feature i en form, hvor værdierne(UddID) skal sættes ind i en db på flg. måde:

Ex.

UserID    UddID
  1        1
  1        2
  1        4

men når form'en sender værdierne kommer de som 1,2,4 - jeg ved også at dette kan gøres med en split-method, men jeg kan ikke gennemskue, hvordan det sættes sammen med en sql-sætning.

UserID'et er et typisk "fil.asp?ID=<%=RS("UserID")%>"

Anyone???

Avatar billede mjess Nybegynder
24. november 1999 - 16:02 #1
Her er et gæt. Jeg har ikke testet den!!

'Split returnerer en array:

arr = Split(Request.Form("UddID")

'loop gennem arrayet

For a = LBound(arr) to UBound(arr)

'opbyg SQL statement, der tilføjer et en UddID for UserID

strSQL = "INSERT INTO [TabelNavn] (UserID,UddID) VALUES (" & UserID & "," & arr(a) & ")"

'Conn er ODBC forbindelsen til databasen

Conn.Execute(strSQL)

Next
Avatar billede ziber Nybegynder
25. november 1999 - 08:34 #2
Jeg hra lavet en lille kode, som tæller igennem strengen, og udtrækker tallene.

-----kodestart-----

S = 1
TestVar = "1,2,3,4,5,6,7,8,9"

FOR N = 1 TO Len(TestVar)
  TestVarRes = Mid(TestVar, S, 1)
  Response.Write TestVarRes
  Response.Write "<br>"
  S = N + V + 2
  V = V + 1
NEXT


Hvis du bruger denne kode, kan su se, at den udskriver tallene, men ikke komma-tegnene.

Så udskifter du bare denne kode del med din egen, og vupti så virker det:
    Response.Write TestVarRes
    Response.Write "<br>"

PS: JA, jeg ved godt det ikke er FLOT programmeret, men det virker,  ved et-cifrede tal.
Avatar billede scooter Nybegynder
25. november 1999 - 08:38 #3
Tak, begge to! :o) Jeg prøver det lige af i løbet af dagen! :o)
Avatar billede scooter Nybegynder
25. november 1999 - 08:44 #4
Når nu en bruger ønsker at redigere i sin Profil, så skal der trækkes div. oplysninger fra db'en - hvordan trækker jeg alle de mulige uddannelser fra Uddannelses-tabellen og markerer dem, som brugeren har valgt?

Hvad er smartest at bruge:
Select?
Checkbox'e? kan man få asp til at "checke" boxen, der hvor brugeren sidst "checkede" boxen?

Puh, det er svært at forklare...skriv hvis I ikke forstår, ok?
Avatar billede mjess Nybegynder
25. november 1999 - 09:10 #5
Jeg ville nok bruge checkbox'e

Lav en forespørgsel i databasen, f.eks. "SELECT UddID FROM [TABEL] WHERE UserID=" & [UserID]

Når du så laver checkbox'ene til uddannelserne, kan du undersøge om den aktuelle udannelsesID (UddID) er i recordsættet.

Hvis den er det, laves checkbox'en med:
  <input type=checkbox name=UddID CHECKED>
Hvis den ikke er laves den som
  <input type=checkbox name=UddID>
Avatar billede ziber Nybegynder
25. november 1999 - 09:15 #6
ja, ckeckboxe er lettere at bruge

Der kan også laves sådan, at du via ckeckboxene skriver i databasen. Altså når brugeren checker/unchecker en box, skrives der til basen. Det kan laves meget enkelt med et lille vbscript
Avatar billede mjess Nybegynder
25. november 1999 - 09:24 #7
Hvis du så giver checkbox'ene en værdi svarende til UddID f.eks.
<input type=checkbox name=UddID value=1>
<input type=checkbox name=UddID value=2>
<input type=checkbox name=UddID value=3>
<input type=checkbox name=UddID value=4>

så kan du i den asp, der behandler formen, få værdierne på de check'ede bokse med

Split(Request.Form("UddID"),",")
Avatar billede scooter Nybegynder
25. november 1999 - 11:08 #8
Hej igen! Jeg har fået første del til at virke! Jeg brugte mjess's kodeforslag, da jeg forstod det bedst, så det er ikke fordi ziber's ikke virker ;o)

Nu går jeg snart igang med anden del og så skal I nok få belønning begge to som tak for den fine hjælp! :o)

//scooter
Avatar billede scooter Nybegynder
25. november 1999 - 14:16 #9
ang. det sidste spørgsmål:

Jeg har 3 tabeller: Person, Uddannelse, PersUdd

Person og PersUdd relaterer til hinanden med et UserID

Uddannelse og PersUdd relaterer til hinanden med et UddannelsesID

Jeg skal have en checkbox-liste ud over alle mulige uddannelser, men kun brugerens valgte uddannelser er "checked"

Men jeg kan ikke få jeres kodeforslag til at hænge sammen med min...hjælp? :o)
Avatar billede scooter Nybegynder
25. november 1999 - 14:20 #10
Lige nu får jeg 700.000 poster ud med uddannelserne (ca. 48 x hver uddannelse(5)) :o(

Min kode ser sådan ud...:

Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("\database\job.mdb")
  SQL = "select * from Person, Uddannelse, Kategori, Landsdel, PersUdd, PersKat, PersLand WHERE Person.UserID = '"& userid &"';"
  Set RS = Conn.Execute(SQL)%> <br>
          <font color="#000000">Navn:</font> <%=RS("Navn")%> <br>
          <font color="#000000">Adresse:</font> <%=RS("Adresse")%> <br>
          <font color="#000000">Postnr/By:</font> <%=RS("Postnr")%> <%=RS("Bynavn")%>
          <br>
          <font color="#000000">Land:</font> <%=RS("Land")%> <br>
          <font color="#000000">Telefon:</font> <%=RS("Telefon")%> <br>
          <font color="#000000">Email:</font> <%=RS("Email")%> <BR>
          <BR>
          <font color="#000000">Overskrift:</font><BR>
          <%=RS("Overskrift")%> <BR>
          <BR>
          <font color="#000000">Kort beskrivelse:</font><BR>
          <%=Replace(RS("KortBeskr")&"", vbCrLf, "<BR>")%> <BR>
          <BR>
          <font color="#000000">CV-tekst:</font><BR>
          <%=Replace(RS("LangBeskr")&"", vbCrLf, "<BR>")%> <BR>
          <BR>
          <font color="#000000">Uddannelse:</font><br>
<% Do while not RS.EOF %>
          <input type="checkbox" name="uddannelse" value="<%=RS("UddannelsesID")%>"> <%=RS("Uddannelse")%>
          <br>
          <br>
<%
  RS.MoveNext
  Loop
%>
<% 
RS.Close
Conn.Close
Set Conn = Nothing
%>

P.S: Jeg har oprettet relationer mellem tabellerne for at undgå de laaaange where-sætninger...
Avatar billede mjess Nybegynder
25. november 1999 - 16:34 #11
Del forespørgslen op i tre.

1. Hent information om brugeren.

2. Hent brugerens uddannelser

3. Hent alle uddannelser

Når du så skal lave checkbox'ene ud fra resultat af forespørgsel nr. 3, bruger du metoden, jeg nævnte tidligere.
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