Avatar billede fromse Nybegynder
25. februar 2005 - 10:59 Der er 24 kommentarer og
1 løsning

Hjælp til to funktioner

Hej...

Jeg har prøvet gennem længere tid at lave to funktioner til min hjemmeside. Men har ikke kunnet hitte u a det...

Jeg kunne godt bruge et automatisktsitemap med hovedsider, og undersider.

Og så kunne jeg også tænke mig, lige som her på exp, en funktion hvor der står: "Du er her: Forside > Underside".

Alle data hives ud af min Access Database.
Avatar billede fennec Nybegynder
25. februar 2005 - 11:10 #1
Vi skal have nogle oplysninger om din database opbygning...
Avatar billede fennec Nybegynder
25. februar 2005 - 11:24 #2
Du kan måske få noget ud af denne funktion, som jeg bruger til navigation:

function MakeNavigation(FunkID)
dim FunkORS, returVal
  returVal = ""
  set FunkORS = oConn.execute("select id, linktext, pid from WebWebpages where id="& FunkID)
  if not FunkORS.eof then
    if FunkORS("pid")&"" <> "" then
      returVal = MakeNavigation(FunkORS("pid")) & " >> "& "<a href=""default.asp?id="& FunkORS("id") &""">"& FunkORS("linktext") &"</a>"
    else
      returVal = "<a href=""default.asp?id="& FunkORS("id") &""">"& FunkORS("linktext") &"</a>"
    end if
  end if
  MakeNavigation = returVal
end function

Response.write "Du er her: "& MakeNavigation(PageID)
Avatar billede fromse Nybegynder
25. februar 2005 - 11:40 #3
Databasen hedder: ost.mdb
Tabellen i databasen hedder: sider

id, pid, navn, content, sorter, aktiv,

id er selve sidens id. pid er hvis siden er undeside (hvilken side den er underside til)
Avatar billede fennec Nybegynder
25. februar 2005 - 11:50 #4
Så burde du kun skulle ændre "linktext" til "navn" og "WebWebpages" til "sider". Så skal du bare kalde funktion med den side du er på ID.

function MakeNavigation(FunkID)
dim FunkORS, returVal
  returVal = ""
  set FunkORS = oConn.execute("select id, navn, pid from sider where id="& FunkID)
  if not FunkORS.eof then
    if FunkORS("pid")&"" <> "" then
      returVal = MakeNavigation(FunkORS("pid")) & " >> "& "<a href=""default.asp?id="& FunkORS("id") &""">"& FunkORS("navn") &"</a>"
    else
      returVal = "<a href=""default.asp?id="& FunkORS("id") &""">"& FunkORS("navn") &"</a>"
    end if
  end if
  MakeNavigation = returVal
end function

Response.write "Du er her: "& MakeNavigation(PageID)
Avatar billede fennec Nybegynder
25. februar 2005 - 11:52 #5
Hvad er pid på alle topsider (NULL, 0 eller noget andet)
Avatar billede fromse Nybegynder
25. februar 2005 - 11:55 #6
jeg har desværre først mulighed for at teste det i aften... :) Men tag for besvarelsen af første del at mit spørgsmål...
Avatar billede fromse Nybegynder
25. februar 2005 - 11:55 #7
0
Avatar billede fennec Nybegynder
25. februar 2005 - 12:17 #8
Her har du så også en sitemap funktion:

function siteMap(funkPID, funkLevel)
dim FunkORS
  set FunkORS = oConn.execute("select * from sider where pID="& funkPID &" order by sorter")
  do while not FunkORS.eof
    response.write funkLevel& FunkORS("name") &"<br>"
    call siteMap(FunkORS("id"), funkLevel&"&nbsp;&nbsp;")
    FunkORS.MoveNext
  loop
end function

call siteMap(0, "")

Du vil evt også have en "where aktiv=etEllerAndet" på selecten. Det eneste andet begge funktioner kræver er en forbindelse til databasen:

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "enDatabaseForbindelse"
...
...
Avatar billede fromse Nybegynder
25. februar 2005 - 12:52 #9
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'oConn'
/cms/duerher.asp, line 50

det er til den første kode...

50 set FunkORS = oConn.execute("select id, navn, pid from sider where id="& FunkID)
Avatar billede fromse Nybegynder
25. februar 2005 - 12:56 #10
Min fejl... glemte forbindelsen...
Avatar billede fromse Nybegynder
25. februar 2005 - 13:04 #11
har problemer med det... :S

Kan du lave en side, med database, hvor begge funktioner er includeret?
Avatar billede fennec Nybegynder
25. februar 2005 - 13:25 #12
Burde være sådan:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<html>
<head>
  <title>Untitled</title>
</head>
<body>
<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "enDatabaseForbindelse"
pageID = request.querystring("id") '<-- Denne skal svare til sidens id (bruges på navigatoren)

function MakeNavigation(FunkID)
dim FunkORS, returVal
  returVal = ""
  set FunkORS = oConn.execute("select id, navn, pid from sider where id="& FunkID)
  if not FunkORS.eof then
    if FunkORS("pid")&"" <> "" then
      returVal = MakeNavigation(FunkORS("pid")) & " >> "& "<a href=""default.asp?id="& FunkORS("id") &""">"& FunkORS("navn") &"</a>"
    else
      returVal = "<a href=""default.asp?id="& FunkORS("id") &""">"& FunkORS("navn") &"</a>"
    end if
  end if
  MakeNavigation = returVal
end function
function siteMap(funkPID, funkLevel)
dim FunkORS
  set FunkORS = oConn.execute("select * from sider where pID="& funkPID &" order by sorter")
  do while not FunkORS.eof
    response.write funkLevel& FunkORS("name") &"<br>"
    call siteMap(FunkORS("id"), funkLevel&"&nbsp;&nbsp;")
    FunkORS.MoveNext
  loop
end function

'Lav Navigator
Response.write "Du er her: "& MakeNavigation(pageID)

'Lav Sitemap
call siteMap(0, "") '<-- skal være 0 da det svarer til topsider
%>
</body>
</html>

Ellers kan jeg lave det 100% rigtigt og test hvis jeg kan få din database...
Avatar billede fennec Nybegynder
25. februar 2005 - 13:32 #13
Jeg får desværre ikke tid til at kikke mere på det før mandag. Så hvis der er problemer må du vente eller håbe på andre kikker herind.
Avatar billede fromse Nybegynder
25. februar 2005 - 14:27 #14
Ok... du kan godt få min database...

Skal jeg sende til en mail eller?
Avatar billede fennec Nybegynder
28. februar 2005 - 08:41 #15
Det bedste er hvis du har den på internettet, også smider et link til den.
Avatar billede fromse Nybegynder
28. februar 2005 - 12:38 #16
Avatar billede fennec Nybegynder
28. februar 2005 - 14:51 #17
Jeg kan godt hente filen, men jeg kan ikke få lov til at åbne den...
Avatar billede fennec Nybegynder
28. februar 2005 - 14:52 #18
Har løst åbningsproblemet :o)
Avatar billede fromse Nybegynder
28. februar 2005 - 15:04 #19
;) håber du finder u a det... ;)

Kan outputet komme tl at se sådan ud:

Du er her: Produkt - Moduler - Nyhedsbrev

Hvor de to første punkter er link, mens det sidste, som man er på, bare er tekst evt.

Sitemap (tre eller flere niveauer):

Velkommen
Profil
  - Medarbejdere
Produkt
  - CMS
      - Hvad er CMS?
  - Moduler
      - Søgning
      - Gæstebog
      - Nyhedsbrev
Avatar billede fennec Nybegynder
28. februar 2005 - 15:35 #20
Jeg har lavet dette ud fra databasen. Du skal bare smide det i en fil, som hedder test.asp:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<html>
<head>
  <title>Untitled</title>
</head>
<body>
<%
strDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db/data.mdb")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open strDB
pageID = request.querystring("id") '<-- Denne skal svare til sidens id (bruges på navigatoren)
if pageID = "" then pageID=1

function MakeNavigation(FunkID)
dim FunkORS, returVal
  returVal = ""
  set FunkORS = oConn.execute("select id, menu, sub from page where id="& FunkID)
  if not FunkORS.eof then
    if FunkORS("sub")&"" <> "0" then
      returVal = MakeNavigation(FunkORS("sub")) & " >> "& "<a href=""test.asp?id="& FunkORS("id") &""">"& FunkORS("menu") &"</a>"
    else
      returVal = "<a href=""test.asp?id="& FunkORS("id") &""">"& FunkORS("menu") &"</a>"
    end if
  end if
  MakeNavigation = returVal
end function

function siteMap(funkPID, funkLevel)
dim FunkORS
  set FunkORS = oConn.execute("select * from page where sub="& funkPID &" order by [order]")
  do while not FunkORS.eof
    response.write funkLevel& "- <a href=""test.asp?id="& FunkORS("id") &""">"& FunkORS("menu") &"</a><br>"
    call siteMap(FunkORS("id"), funkLevel&"&nbsp;&nbsp;")
    FunkORS.MoveNext
  loop
end function

'Lav Navigator
Response.write "Du er her: "& MakeNavigation(pageID) &"<br><br>"

'Lav Sitemap
call siteMap(0, "") '<-- skal være 0 da det svarer til topsider
%>
</body>
</html>
Avatar billede fromse Nybegynder
28. februar 2005 - 15:40 #21
Cool... det var dejligt... ;)

100 point + Karma... .o)
Avatar billede fromse Nybegynder
28. februar 2005 - 15:51 #22
Et hutigt spørgsmål, hvis du gidder...

Hvordan få jeg skrevet de respektive undersider ud på min side?
Lige nu udskriver den bare hovedsiderne, men den skal også udskrive undersider, hvis der er nogle... Hvordan får man den til det?
Avatar billede fennec Nybegynder
28. februar 2005 - 15:58 #23
Mener du på navigatoren???
Du er her: enOverSide >> HerErMan >> underSide
Avatar billede fromse Nybegynder
28. februar 2005 - 16:00 #24
Nej, den der er 100%! :)

selve min hjemmeside... der skal den vise undersidene, hvis der er nogle... det kan den ikke nu...
Avatar billede fennec Nybegynder
28. februar 2005 - 16:10 #25
pageID = request.querystring("id")
if pageID = "" then pageID=1
'...
'Find undersider.
set rs = oConn.execute("select * from page where sub="& pageID)
do while not rs.eof
  response.write "&nbsp;&nbsp;"& rs("menu") &"<br>"
  rs.MoveNext
loop
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