Avatar billede lillefix Nybegynder
20. januar 2004 - 08:30 Der er 5 kommentarer og
1 løsning

Værdier fra Dropdown liste til fortsat søgning på samme asp-side

Hej,

Jeg har lavet en dropdown-liste(PersonValg), hvori jeg kan vælge navne på forskellige personer.
Det jeg har problemer med, er at når en person er valgt, vil jeg på samme side bruge det valgte navn til at fortsætte søgningen i en database.
Hvordan refererer jeg til det navn der er valgt ?

Jeg vedhæfter min kode nedenfor :

Hilsen

Jan

<html>
<head>
</head>
<body>
<%
Dim F, Person, PersonArray
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("stamtrae.mdb")
Conn.Open DSN

' Hent alle navne
strSQL = "Select * from TA_Personoplysninger Order By Navn"
Conn.Execute(strSQL)

' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke
Do
  ' Udskriv værdien af kolonnen Navn
  Person = Person & "," & rs("Navn")
  ' Gå til næste Record i rs
  rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

'Del Personlisten op
PersonArray = Split(Person,",")
%>

<select size="1" name="PersonValg">
    <%For F = LBound(PersonArray) to UBound(PersonArray)%>
        <option><%=PersonArray(F)%></option>
    <%Next%>
</select>

<%
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

</body>
</html>
Avatar billede deeflate Nybegynder
20. januar 2004 - 10:32 #1
Det kan gøres simplere end du har det der.
Du looper først rs igennem og fylder værdierne i en string, som du så fylder i et array, som du så looper igennem.

Hvorfor ikke nøjes med at loope rs'et?

Anyway, dit problem kan løses med noget der hedder querystrings.
Avatar billede deeflate Nybegynder
20. januar 2004 - 10:40 #2
<html>
<head>
</head>
<body>
<%
Dim F, Person, PersonArray

valgtPerson = request.Querystring("personValg")

if valgtPerson <> "" Then
  valgtPerson = "WHERE Navn = '" & valgtPerson & "' "
End if

' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

' Hent alle navne eller valgt navn
strSQL = "Select * from TA_Personoplysninger " & valgtPerson & "Order By Navn"
Conn.Execute(strSQL)

'response.write strSQL

' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

response.Write "<form><select size='1' name='PersonValg'>"

' Gennemløb Recordset (rs) med en løkke
Do
  ' Udskriv værdien af kolonnen Navn
  response.Write "<option>" & rs("Navn") & "</option>"
  ' Gå til næste Record i rs
  rs.MoveNext


' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

  response.Write "</select>"

  response.Write "<input type='submit' value='Vælg denne person'></form>"


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede deeflate Nybegynder
20. januar 2004 - 10:46 #3
Men du får jo så altså udskrevet en dropdown igen - bare med den ene valgte person.
Avatar billede deeflate Nybegynder
20. januar 2004 - 10:47 #4
Hov, undskyld!

DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")

skulle selvfølgelig være

DSN = DSN & "DBQ=" & Server.MapPath("stamtrae.mdb")

Og hvis du ikke vil have knappen med, men bare ønsker at det skal skifte så snart man vælger en person, så udskift

response.Write "<form><select size='1' name='PersonValg'>"

med

response.Write "<form><select size='1' name='PersonValg' onChange='submit()'><option>Vælg navn</option>"
Avatar billede lillefix Nybegynder
20. januar 2004 - 10:55 #5
Hej Deeflate - Det er bare perfekt. Så kan jeg komme videre i mit lille projekt :-)

Tusind tak

Jan
Avatar billede deeflate Nybegynder
20. januar 2004 - 11:25 #6
Velbekomme :)

Du må hellere lige acceptere, så spørgsmålet bliver lukket.
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