Avatar billede lorax Nybegynder
13. marts 2004 - 22:17 Der er 9 kommentarer og
1 løsning

flere sider til tagwall

jeg har lavet en tagwall men den kører kun på en side. jeg ville være meget glad hvis der var en der kunne kigge på koden også lige give mig et hint om hvordan jeg får min tagwall til at lave flere sider d.v.s. hvis der er 30 poster så laver den to sider [1][2][3] og hvor der er 10 på hver, men så skal loopet også stoppe når den er nået op på 10 sider.

Kode:

<%if session("login") = "ja" then%>
Tagwall:<br>
<%
set conn = server.createobject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & Server.MapPath("*.mdb")
Conn.Open DSN

if request("mode") = "post" then
besked = replace(request("tekst"),vbcrlf, "<br>")

strSQL = "insert into beskeder ("

strSQL = strSQL & "author,"
strSQL = strSQL & "subject,"
strSQL = strSQL & "besked,"
strSQL = strSQL & "dato)"

strSQL = strSQL & "values("

strSQL = strSQL & "'" & session("brugernavn") & "',"
strSQL = strSQL & "'" & request("subject") & "',"
strSQL = strSQL & "'" & request("besked") & "',"
strSQL = strSQL & "'" & now & "')"

Conn.Execute(strSQL)

Response.Write "Din besked er gemt, og du bliver ført tilbage til forummet om et øjeblik"
%>
<head>
<meta http-equiv="refresh" content="2; url=default.asp?side=tagwall">
</head>
<%end if

if request ("mode") = "sletpost" and session("admin") = "Ja" then
strSQL = "delete from beskeder where subject = '" & Request("subject") & "'"
conn.Execute(strSQL)
Response.Write "Posten er slettet og du vil blive sendt tilbage til tagwallen om et øjeblik"
%>
<head>
<meta http-equiv="refresh" content="2; url=default.asp?side=tagwall">
</head>
<%end if

strSQL = "select * from beskeder order by dato DESC"
set rs = conn.execute(strSQL)%>

<table>
    <form method="post" action="default.asp?side=tagwall&mode=post">
        <tr>
            <td>
                titel
            </td>
            <td>
                <input type="text" name="subject">
            </td>
        </tr>
        <tr>
            <td>
                besked
            </td>
            <td>
                <input type="text" name="besked">
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="gem" name="submit">
            </td>
        </tr>
    </form>
</table>
<hr width="1">

<%Do%>
<table style="border-style: solid; border-width: 1" width="100%">
<%Response.Write "<tr><td>"
Response.Write rs("author") & "</td></tr>"
if session("admin") = "Ja" then%>
<tr><td>
<a href="default.asp?side=tagwall&mode=sletpost&subject=<%= rs("subject")%>"><%= rs("subject")%></a>
</td><td>
<%else
Response.Write "<tr><td>"
Response.Write rs("subject")
Response.Write "</td><td>"
end if
Response.write rs("dato") & "</td></tr><tr><td>"
Response.Write rs("besked") & "</td></tr></table><br>"
rs.movenext
Loop While not (rs.bof or rs.eof)
conn.close
set conn = nothing
else
Response.Write "du skal være logget ind for at benytte tagwallen"
%>
<head>
<meta http-equiv="refresh" content="3; url=default.asp">
</head>
<%end if%>

den er hjemmelavet og bruges på www.frip.dk/doh så jeg har ændret min databases navn til * (i tilfælde af hvis en hacker så denne post)

På forhånd tak Claes (webmaster på www.frip.dk/doh
Avatar billede eagleeye Praktikant
13. marts 2004 - 23:54 #1
Det gøres med paging og du kan se et eksempel på koden her:
http://activedeveloper.dk/artikler/default.asp?articleid=31
Avatar billede lorax Nybegynder
14. marts 2004 - 01:11 #2
kan du ikke lige prøve at forklare mig det lidt jeg har dog trods alt lidt erfaring med asp men der er nogle ting ved det der paging jeg ikke kan forstå
Avatar billede eagleeye Praktikant
14. marts 2004 - 01:20 #3
Du har din egen SQL-sætning som du bruger til at søge med så den udskrifter du bare den fra ekeemplet:
strSQL = "SELECT LinkURL FROM Links"

med dig egen:
strSQL = "DIN SQL SÆTNING"


Så angiver du hvor mange poster du vil havde på hver side i denne linjen, her 10 pr. side:
    rs.PageSize = 10


Ud skrivning af søge resultet skal gøres inde i det loop der er:
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop

Du har sikkert et tilsvarne loop som du udskriver søgeresultatet i idag så du udskirve denne linie:
        Response.Write rs("LinkURL") & "<br>"
Men alle de linier du måtte hvade behov for...



Dette kode laver en liste i bunde med Gå til side 1 2 3 4 osv:
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next


Dette kode lave en links til forrige side via truk på <<:
Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If


Dette kode lave en links til næste side via tryk på >>:
If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If



Det vigtig man bruger recordset .Open metode til at åbne for eller understyttes de "bookmarks" ikke som giver mulighed for paging:

rs.Open strSQL, Conn, 1
Avatar billede lorax Nybegynder
14. marts 2004 - 01:22 #4
jeg kan lige give dig en kort gennemgang af det som jeg ikke kan forstå som du meget gerne må hjælpe mig med:

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

forstår en del af det.

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT LinkURL FROM Links"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/aspdigital/db/demo.mdb")
rs.Open strSQL, strDSN, 1

....hvorfor ikke....

set conn = server.createobject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & Server.MapPath("*.mdb")
Conn.Open DSN

intRecCount = intRecCount - 1

forstår ikke en brik!

Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
  Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If

heller ikke meget
Avatar billede eagleeye Praktikant
14. marts 2004 - 01:28 #5
Denne del:

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Finder den side man er kommet til, er det første gang side vises sættes side tallet til første side 1.
Avatar billede lorax Nybegynder
14. marts 2004 - 01:35 #6
okay så min tagwall skulle se noget ud lign:

Tagwall:<br>
<%
set rs = server.createobject("ADODB.RecordSet")
strSQL = "select * from beskeder order by dato DESC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("*.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 5
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Response.Write "<p><b>[" & intPage & "] af [" & intPageCount & "]</b></p>"
  Do While Not rs.EOF And intRecCount > 0 %>
<table style="border-style: solid; border-width: 1" width="100%">
<%Response.Write "<tr><td>"
Response.Write rs("author") & "</td></tr>"
if session("admin") = "Ja" then%>
<tr><td>
<a href="default.asp?side=tagwall&mode=sletpost&subject=<%= rs("subject")%>"><%= rs("subject")%></a>
</td><td>
<%else
Response.Write "<tr><td>"
Response.Write rs("subject")
Response.Write "</td><td>"
end if
Response.write rs("dato") & "</td></tr><tr><td>"
Response.Write rs("besked") & "</td></tr></table><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=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=paging.asp?page=" & intPage - 1 & "><--</a>"
Else
  Response.Write "<--"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">--></a> "
Else
  Response.Write "-->"
End If
%>
Avatar billede eagleeye Praktikant
14. marts 2004 - 01:38 #7
Ja og du skal også lige havde disse linjer i toppen af filen sdåan den hendter hvilken side der skal vises:

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If
Avatar billede lorax Nybegynder
14. marts 2004 - 01:57 #8
det virker meget godt undtagen hvis du nu har lavet mere end 5 poster og der kommer en anden side så viser den den ikke!
Avatar billede eagleeye Praktikant
14. marts 2004 - 02:00 #9
Har du rette filnavnet i linksne?  Fra paging.asp til det navn din fin har.
Avatar billede lorax Nybegynder
14. marts 2004 - 02:02 #10
lige præcis det havde jeg glemt hehe men nu virker det mange tak jeg skal nok også give dig noget karma!!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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