Avatar billede cthun Nybegynder
01. oktober 2001 - 16:12 Der er 6 kommentarer og
1 løsning

ASP søgning med paging

Hvad gør jeg galt...

<% Response.Buffer = True %>
<html><head>
<title>Paging af et recordset</title>
</head><body>

<%
intPage = Request(\"side\")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

strKeyword = Trim(Request.Form(\"keyword\"))

If Len(strKeyword) = 0 Then
    \' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect(\"soeg.asp\")
Else
    \' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
strSQL = \"SELECT LinkID, Navn, Beskrivelse FROM Links WHERE\"
strSQL = strSQL & \" (LinkID LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Navn LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Beskrivelse LIKE \'%\" & strKeyword & \"%\')\"
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"links.mdb\")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 1
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write \"<p><b>Side \" & intPage & \" af \" & intPageCount & \"</b></p>\"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs(\"Navn\") & \"<br>\"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write \"<p>Gå til side \"
For intNum = 1 To intPageCount
Response.Write \"<a href=soeg.asp?side=\" & intNum & \"&keyword=\" & Trim(Request(\"keyword\")) & \">\" & intNum & \"</a> \"
Next

Response.Write \"<p>\"
If Clng(intPage) > 1 Then
    Response.Write \"<a href=soeg.asp?side=\" & intPage - 1 & \"&keyword=\" & Trim(Request(\"keyword\")) & \">&lt;&lt;</a>\"
Else
    Response.Write \"&lt;&lt;\"
End If

Response.Write \"&nbsp;\"

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write \"<a href=soeg.asp?side=\" & intPage + 1 & \"&keyword=\" & Trim(Request(\"keyword\")) & \">&gt;&gt;</a>\"
Else
    Response.Write \"&gt;&gt;\"
End If
%>

</body></html>


den søger fint nok... man kan bare ikke gå til \"Næste side\"... kig her http://thun.dyndns.dk/temp

<cthun>
Avatar billede cthun Nybegynder
01. oktober 2001 - 16:14 #1
Prøv søge på \"and\"
Avatar billede keysersoze Ekspert
01. oktober 2001 - 16:19 #2
så prøv engang dette:

if intPage = \"\" then

strKeyword = Trim(Request.Form(\"keyword\"))

If Len(strKeyword) = 0 Then
    \' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect(\"soeg.asp\")
Else
    \' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If

else
end if

Avatar billede eagleeye Praktikant
01. oktober 2001 - 16:22 #3
strKeyword = Trim(Request.Form(\"keyword\"))
if strKeyword = \"\" then
  strKeyword = Trim(Request.Querystring(\"keyword\"))
end if

Eller bare:
strKeyword = Trim(Request(\"keyword\"))
Avatar billede eagleeye Praktikant
01. oktober 2001 - 16:26 #4
Første gang får du keyword fra FORM\'en på de næste sider får du keyword som Querystring. Og hvis keyword er tom skal den Redirect til soegform.asp og ikke soeg.asp:

strKeyword = Trim(Request.Form(\"keyword\"))
if strKeyword = \"\" then
  strKeyword = Trim(Request.Querystring(\"keyword\"))
end if

If Len(strKeyword) = 0 Then
    \' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect(\"soegform.asp\")
Else
    \' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If
Avatar billede keysersoze Ekspert
01. oktober 2001 - 16:31 #5
eagleeye >> hvis det skal gøres på den måde er det nok bedre (både rent scriptmæssigt men også for brugernes skyld) at sætte keywordet op i querystringen med det samme i steder for kun på nogle sider ;o)

og så skal min egentlig hedde:

if Request(\"side\") = \"\" then

strKeyword = Trim(Request.Form(\"keyword\"))

If Len(strKeyword) = 0 Then
    \' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect(\"soeg.asp\")
Else
    \' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If

else
end if

Avatar billede cthun Nybegynder
01. oktober 2001 - 16:48 #6
er der ikke en af jeg der gider skrive til mig på ICQ #98702480
Avatar billede use.kr Nybegynder
02. oktober 2001 - 09:53 #7
hvis linkssystemet kommer fra activeserverpages, kunne problemet være, at dine kategorier er mere end et ord. Nu kan jeg ikke lige loade dit site, og kan ikke se kategorierne, men jeg havde ihvertfald det problem, og det blev løst sådan.
Hilsen
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

IT-JOB

Politiets Efterretningstjeneste

Data Engineer til at udvikle PET's dataplatform

Politiets Efterretningstjeneste

GenAI-specialist i PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Applikationsarkitekt til stor applikationstransformation i Forsvaret

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Specialister til Netværksoperations til Forsvarets nye Digitale Backbone