17. oktober 2002 - 07:22Der er
39 kommentarer og 1 løsning
Bestemt antal og få <select>-boksen til at vise valget
Jeg vil have, at man skal kunne vælge at få vist 25, 50, 75, 100, 150 eller alle fra databasen. Vælger brugeren 50, skal select-boksen selvfølgelig vise, at man har valgt 50 visninger. Hvordan gør jeg?
Jeg er klar over, at det skal skrives lidt om med "else...endif" eller nåed'. Men hvordan?
If antal_visninger = "25" Then strSQL = "SELECT TOP 25 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL)
If antal_visninger = "50" Then strSQL = "SELECT TOP 50 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "75" Then strSQL = "SELECT TOP 75 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "100" Then strSQL = "SELECT TOP 100 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "150" Then strSQL = "SELECT TOP 150 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "Alle" Then strSQL = "SELECT * username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
antal_visninger = Request.Form("antal_visninger") If antal_visninger = 25 Then strSQL = "SELECT TOP 25 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL)
If antal_visninger = 50 Then strSQL = "SELECT TOP 50 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 75 Then strSQL = "SELECT TOP 75 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 100 Then strSQL = "SELECT TOP 100 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 150 Then strSQL = "SELECT TOP 150 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "Alle" Then strSQL = "SELECT * username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
While Not rs.EOF Response.Write(rs("felt") & "<br>" rs.MoveNext() Wend
Jeg faldt tilfældigt over et kodeeksempel. Om det er noget, det skal jeg have din hjælp til:
<% vTop = Request.Querystring("antal") If vTop > 200 or vTop < 25 then vTop = 50 End If %>
<select size="1" name="antal_visninger"> <option value="25" <% If vTop = "25" Then %> selected <% End If %>>25</option> <option value="50" <% If vTop = "50" Then %> selected <% End If %>>50</option>
antal_visninger = Request.Form("antal_visninger") If antal_visninger = 25 Then strSQL = "SELECT TOP 25 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL)
If antal_visninger = 50 Then strSQL = "SELECT TOP 50 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 75 Then strSQL = "SELECT TOP 75 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 100 Then strSQL = "SELECT TOP 100 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 150 Then strSQL = "SELECT TOP 150 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "Alle" Then strSQL = "SELECT * username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
While Not rs.EOF Response.Write(rs("felt") & "<br>" rs.MoveNext() Wend
If antal_visninger = 25 Then strSQL = "SELECT TOP 25 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End IF
Nu står den bare ved 150, men der bliver ikke trukket noget ud?
antal_visninger = Request.Form("antal_visninger") If antal_visninger = 2 Then strSQL = "SELECT TOP 2 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 3 Then strSQL = "SELECT TOP 3 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 4 Then strSQL = "SELECT TOP 4 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = 5 Then strSQL = "SELECT TOP 5 username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "Alle" Then strSQL = "SELECT * username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
og skift denne: If antal_visninger = "Alle" Then strSQL = "SELECT * username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If ud med denne:
If antal_visninger = 6 Then strSQL = "SELECT * username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
If antal_visninger = "1000" Then strSQL = "SELECT * username, created, lastseen, showstatus FROM profiles ORDER BY username" Set RS = Conn.Execute (strSQL) End If
Uanset hvad jeg vælger, står værdien i select-boksen til "2".
Hvis jeg vælger "Alle", får jeg denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '* username'.
default.asp, line 100
LINIE 100: Set RS = Conn.Execute (strSQL)
Linie 100 hører til If antal_visninger = "1000" Then ......
Ja, det er jo fordi at du skal sætte den valgte til SELECTED. I det du sætter den til SELECTED så er det den der bliver det valgte! Eks.:
<select size="1" name="antal_visninger" class="input"> <option value="2" <% If Request.Form("antal_visniger") = 2 Then Response.Write("SELECTED")%>>2</option> <option value="3" <% If Request.Form("antal_visniger") = 3 Then Response.Write("SELECTED")%>>3</option> <option value="4" <% If Request.Form("antal_visniger") = 4 Then Response.Write("SELECTED")%>>4</option> <option value="5" <% If Request.Form("antal_visniger") = 5 Then Response.Write("SELECTED")%>>5</option> <option value="6" <% If Request.Form("antal_visniger") = 6 Then Response.Write("SELECTED")%>>Alle</option> </select>
Jeg tror det er fordi der ikke er nogen værdi at arbejde med. Som standard skal der udskrives det mindste antal, hvilket i dette tilfælde er "2" (det bliver ændret til "25" senere, når der er noget i databasen).
Lige et tillægsspørgsmål: Kan man fjerne "Opdater"-knappen, så antallet af visninger bliver valgt, når man slipper museknappen, eller er det omfattende?
Jo, det kan man, men jeg tror så man skal foruddefinere antal_visninger.
Men skidt med det, Rune! Jeg vil hellere have lavet et par ekstra features: Man skal også kunne vælge, om man vil have vist dem i alfabetisk rækkefølge, eller om man vil have vist dem efter ID. Jeg opretter et nyt spørgsmål. Er du frisk på den? Jeg kunne forestille mig dette efter select-boksen:
<input type="radio" value="alfabetisk" checked name="R1"> alfabetisk <input type="radio" value="order_by_ID" name="R1"> efter ID
Du er velkommen til at hjælpe, hvis du har mod på det :o)
Synes godt om
Ny brugerNybegynder
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.