Avatar billede Slettet bruger
09. marts 2006 - 21:40 Der er 5 kommentarer og
1 løsning

Alfabetisk liste efter forbogstav

Jeg har fundet denne kode her på eksperten og den virker helt som den skal (eller næsten da).
# skal vise tal og den slags, men når man klipper på den så bliver alle poster vist også den med bogstaver, men hvis der ikke er nogle tal i db'en så er # ikke aktiv og man kan derfor ikke trykke på den.
Hvad skal jeg gøre for at få # til kun at vise tal og tegn ???

Dim strCharList, strSelectedCharList
strCharList    = "#ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"
strSQL      = "SELECT DISTINCT(Left(pDanish_title, 1)) FROM products where pCategory=" & Request.Querystring("c") & "" 

arrCharList = ConnMain.Execute(strSQL).GetRows() 
For intCharNumb = 0 TO UBOUND(arrCharList, 2)

  strChar    = UCASE(arrCharList(0, intCharNumb))
 
  If NOT Instr(strCharList, strChar) > 0 Then strChar = "#"
  strSelectedCharList  = strSelectedCharList & strChar
Next

For intCharNumb = 1 TO LEN(strCharList)

  strChar    = Mid(strCharList, intCharNumb, 1)
 
  If Instr(strSelectedCharList, strChar) > 0 Then
    strChar    = "<a href=""?c=" & Request.Querystring("c") & "&ch=" & strChar & """>" & strChar & "</a>"
  End If
 
  Response.Write "<font color='gray'>" & strChar & "</font> "
Next
Avatar billede eagleeye Praktikant
09. marts 2006 - 22:42 #1
Så vidt jeg kan se laver det koden en liste med #, A til Å men de bogstaver som findes i database, alle andre tegn end bogstaver bliver til #.

Så spørgsmål går måske på den SQL sætning som henter poster ud med det valgte startbogstav, når man trykke på et bogstav?
Hvis ja hvordan ser det så ud i dag, hvis ikke kan du evt. uddybe hvad du spøger om :) ?
Avatar billede Slettet bruger
09. marts 2006 - 23:24 #2
strSQL = "Select * from products where pCategory=" & Request.Querystring("c") & " AND (pDanish_title LIKE '" & Request.Querystring("ch") & "%') order by pDanish_title"
Set rsProducts = ConnMain.Execute(strSQL)

Ja man trykker på et bogstav og så henter den alle produkter der begynder med feks A... Går ud fra det er denne kode du vil have :)
Avatar billede eagleeye Praktikant
09. marts 2006 - 23:33 #3
Ja prøv noget i denne stil, hvis man overføre # så ret det til [!a-zæøå] så skulle den søge efter alle andre karater end bovstaver.


bogstav = Request.Querystring("ch")
if bogstav = "#" then 
  bogstav = "[!a-zæøå]"
end if
strSQL = "Select * from products where pCategory=" & Request.Querystring("c") & " AND (pDanish_title LIKE '" & bogstav & "%') order by pDanish_title"
Set rsProducts = ConnMain.Execute(strSQL)
Avatar billede Slettet bruger
10. marts 2006 - 00:22 #4
Det virker desværre ikke, den viser stadig alle produkter når jeg trykker på #.

Har du et forslag til :)
Avatar billede eagleeye Praktikant
10. marts 2006 - 00:28 #5
# tegne er forøvringt ikke så godt at overføre da det bruges til skilletegn i et HTML link. Prøv at sætte Server.URLencode omkring i linket sådan her:

strChar    = "<a href=""?c=" & Request.Querystring("c") & "&ch=" & server.URLencode(strChar) & """>" & strChar & "</a>"
Avatar billede Slettet bruger
10. marts 2006 - 00:33 #6
Weeee nu virker det. Det var # der lavede problemer den opdaterede nemlig ikke siden når jeg trykkede på #-linket.

Man tak for hjælpen og her er dine 30 point :)
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