Avatar billede rejx Nybegynder
06. oktober 2004 - 11:34 Der er 17 kommentarer og
1 løsning

dropdown, select via database.

Hej, jeg har en stump kode jeg ikke kan få til at virke ordenligt. Håber der er nogen der kan hjælpe mig lidt på vej.


strSQL = "Select * from main"
Set rs = Conn.Execute(strSQL)

    DO While Not rs.EOF
       
        pid = rs("Id")
        Response.Write "<option value=" & pid
       
            If pid = Request.Querystring("mainid") Then
            Respose.Write " selected='selected'>"
            Else
            Response.Write ">"
            End if
        Response.Write rs("main_name") & "</option>"

  rs.MoveNext
  Loop


Det er så meningen at den skal selecte den option som id'en reffere til i databasen. Men jeg kan bare ikke få det til at virke.
Avatar billede eagleeye Praktikant
06. oktober 2004 - 11:37 #1
Prøv at rette så der er " omkring value så denne:
Response.Write "<option value=" & pid

bliver til:

Response.Write "<option value=""" & pid & """"


Derudover skal der ikke ' omkring selected og det sakl ikke være selected=... det skal stå for sig selv så ret:
Respose.Write " selected='selected'>"

til denne:
Respose.Write " selected>"
Avatar billede nythjem Nybegynder
06. oktober 2004 - 11:38 #2
If int(pid) = int(Request.Querystring("mainid")) Then
Respose.Write " selected=""selected"">"
Else
Response.Write ">"
End if

:)
Avatar billede nythjem Nybegynder
06. oktober 2004 - 11:45 #3
If CInt(pid) = CInt(Request.Querystring("mainid")) Then
Respose.Write " selected>"
Else
Response.Write ">"
End if
Avatar billede rejx Nybegynder
06. oktober 2004 - 11:47 #4
nythjem --> din kode giver en fejl.
eagleeye --> jeg har rettet det i min kode, men det virker stadig, den skriver ikke select nogen steder. koden ser nu således ud:

strSQL = "Select * from main"
Set rs = Conn.Execute(strSQL)

    DO While Not rs.EOF
       
        pid = rs("Id")
        Response.Write "<option value=""" & pid & """"
               
            If pid = Request.Querystring("mainid") Then
              Respose.Write " selected>"
            Else
              Response.Write ">"
            End if
        Response.Write rs("main_name") & "</option>"

  rs.MoveNext
  Loop
Avatar billede nythjem Nybegynder
06. oktober 2004 - 11:49 #5
Har du prøvet med CInt? Huskede lige forkert nemlig, mindes kun, at Int bruges til tal.. Men CInt burde da virke.. Og i så fald, hvilken fejl giver det?
Avatar billede rejx Nybegynder
06. oktober 2004 - 11:49 #6
nythjem -> yeps, har prøvet samme fejl.
Avatar billede rejx Nybegynder
06. oktober 2004 - 11:51 #7
Microsoft VBScript runtime error '800a01a8' Object required: ''
/nytsite/admin/edit_product.asp, line 31

30      If int(pid) = int(Request.Querystring("mainid")) Then
31            Respose.Write " selected>"
32      Else
Avatar billede eagleeye Praktikant
06. oktober 2004 - 11:56 #8
Der mangler et n i Respose.Write --> Response.write:

Respose.Write " selected>"
Response.Write " selected>"
Avatar billede nythjem Nybegynder
06. oktober 2004 - 12:02 #9
Godt set Eagleeye :)
Avatar billede rejx Nybegynder
06. oktober 2004 - 12:08 #10
jo, en fejl løst :)
men den skriver stadig ikke selected nogen stedder.
Avatar billede nythjem Nybegynder
06. oktober 2004 - 12:12 #11
Pid = rs("id")

Id er vel et tal ikke? Autonumber, eller tal felt?
Har du husket din Querystring?

Ellers prøv.

If CInt(pid) = 'CInt(Request.Querystring("mainid"))' Then

Men

If CInt(pid) = CInt(Request.Querystring("mainid")) Then

burde altså virke, hvis Querystringen er dér, og PID er af typen tal.
Avatar billede eagleeye Praktikant
06. oktober 2004 - 12:16 #12
Lad være med at bruge Cint (max værdi for cint er 32727), brug Int eller CStr.

HVis den ikke vælger nogen, kunne det være fordi Request.Querystring("mainid") ikke har en værdi??
Avatar billede eagleeye Praktikant
06. oktober 2004 - 12:18 #13
Prøv at udskrive den som tjek eller kig i adresse baren i browseren den er overført korrekt:

response.write "mainid : " & Request.Querystring("mainid")
Avatar billede rejx Nybegynder
06. oktober 2004 - 12:23 #14
den er overført korekt, jeg har tjekket i databasen og med den værdi i urlen og det burde resultere i at der bliver udskrevet en select
Avatar billede nythjem Nybegynder
06. oktober 2004 - 12:39 #15
Er det muligt, at se et link? :)
Avatar billede rejx Nybegynder
06. oktober 2004 - 12:55 #16
Er der ikke nogen der har en lignede metode til at ligge, som de kunne poste, det behøver ikke fungere på samme måde.
Avatar billede eagleeye Praktikant
06. oktober 2004 - 13:02 #17
aåsan her:


<%
valgtHojtid = 10
SQL = "select hojtid, hojtidnavn from hojtider order by hojtid"
set katrs = Conn.Execute(SQL)
Response.write "<select name=""hojtid"" id=""hojtid"">"
do while not katrs.EOF
  response.write "<option value=""" & katrs("hojtid") & """"
  if Cstr(valgtHojtid)=Cstr(katrs("hojtid")) then response.write " selected "
  response.write ">" & katrs("hojtidnavn") & "</option>"
  katrs.Movenext
loop
response.write "</select>"
%>
Avatar billede rejx Nybegynder
06. oktober 2004 - 13:13 #18
NICE thx eagleeye
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