Avatar billede martin100 Nybegynder
27. september 2005 - 12:11 Der er 19 kommentarer

Hvordan skal man bygge dette op?

Hejsa.

Hvordan ville det være smartest at trække tekst ud fra en database og lave underliggende submenuer med tekst?

Har givet en lille forklaring her.

http://www.2mwebdesign.dk/garanti/exp.gif
Avatar billede fennec Nybegynder
27. september 2005 - 13:56 #1
Det handler om at lave den rigtige database/tabel. I dette tilfælde er det nok med en tabel, som ser sådan ud:

[Indhold]
id, parentID, linkText, bodyText

Top siderne skal have værdien NULL i parentID og undermenuerne skal selvfølgelig have "overmenuens id" i parentID.

Top menuen udtrækkes så med denne kode:
set rs = conn.execute("select * from Indhold where parentID is NULL")

subMenuer trækkes ud med:
set rs = conn.execute("select * from Indhold where parentID="& parentID)

Du vil evt gerne have en "sort" kolonne også, så de enkelte menuer kan sorteres i den rækkefølke du ønsker.
Avatar billede martin100 Nybegynder
27. september 2005 - 15:12 #2
Hej Fennec.

Jeg kan godt følge dig med dit indlæg. Prøv at se hvad jeg har lavet her:
http://www.2mwebdesign.dk/garanti/go.asp

Hvordan får jeg lavet undermenuer til det, hvis man trykker på en af menuerne?
Avatar billede martin100 Nybegynder
27. september 2005 - 15:13 #3
Mine tabeller består af dette:

Tabelnavn: aa_menu
id : autonummer
menunavn : tekst

Tabelnavn: aa_submenu
id : autonummer
menuid : tal      -> ref til id i aa_menu
submenunavn : tekst

Tabelnavn: aa_link
id : autonummer
menuid : tal      -> ref til id i aa_menu
submenuid : tal  -> ref til id i aa_submenu
linknavn : tekst 
linket : tekst
Avatar billede martin100 Nybegynder
27. september 2005 - 15:21 #4
Det var forkert.

Tabelnavn: aa_menu
id : autonummer
menunavn : tekst
tekst: tekst  -det er denne den hiover ud i basic test i det jeg har lavet!

Tabelnavn: aa_submenu
id : autonummer
menuid : tal      -> ref til id i aa_menu
submenunavn : tekst

Tabelnavn: aa_link
id : autonummer
menuid : tal      -> ref til id i aa_menu
submenuid : tal  -> ref til id i aa_submenu
linknavn : tekst 
linket : tekst
Avatar billede fennec Nybegynder
27. september 2005 - 15:39 #5
Du sender allerede et ID med når du trykker på en top menu:

if isnumeric(request.querystring("ID")&"") then pageID = cint(request.querystring("ID")) else pageID = 0
set rs = conn.execute("select * from aa_submenu where menuid="& pageID)
Avatar billede martin100 Nybegynder
27. september 2005 - 15:43 #6
ja det er jeg klar over. Men kan ikke lige følge med din forklaring?

min nuværende kode ser således ud:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/_vti_log/main.mdb")
Conn.Open DSN

strSQL = "Select * From aa_menu ORDER BY id"
Set rs = Conn.Execute(strSQL)


Do

strNavn = rs("menunavn")

Response.Write "<a href=""?id=" & rs("id") & """>" & strNavn & "</a>"

rs.MoveNext

if not rs.eof  then Response.Write strLink & "  |  "
if rs.eof  then Response.Write strLink


Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
%>
<div id="Layer1" style="position:absolute; width:200px; height:115px; z-index:1; left: 411px; top: 161px">
  <p>Basic tekst</p>
  <hr>
  <%

if not len(Request.Querystring("id"))=0 then
 
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("/_vti_log/main.mdb")
Conn.Open DSN

strSQL = "Select * From aa_menu Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)


Response.Write rs("tekst")


Conn.Close
Set Conn = Nothing
end if
%>







  <div id="Layer2" style="position:absolute; width:200px; height:115px; z-index:2; left: -397px; top: -14px">
    <p>undermenuer:</p>
    <hr>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
  </div>
  <hr>
</div>
</body>
</html>
Avatar billede fennec Nybegynder
27. september 2005 - 15:56 #7
sådan:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/_vti_log/main.mdb")
Conn.Open DSN

strSQL = "Select * From aa_menu ORDER BY id"
Set rs = Conn.Execute(strSQL)

Do
    strNavn = rs("menunavn")
    Response.Write "<a href=""?id=" & rs("id") & """>" & strNavn & "</a>"
    rs.MoveNext
    if not rs.eof  then Response.Write strLink & "  |  "
    if rs.eof  then Response.Write strLink
Loop While Not rs.EOF
%>
<div id="Layer1" style="position:absolute; width:200px; height:115px; z-index:1; left: 411px; top: 161px">
  <p>Basic tekst</p>
  <hr>
  <%

if not len(Request.Querystring("id"))=0 then
 
strSQL = "Select * From aa_menu Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
Response.Write rs("tekst")
end if
%>




  <div id="Layer2" style="position:absolute; width:200px; height:115px; z-index:2; left: -397px; top: -14px">
    <p>undermenuer:</p>
    <hr>
<%
if isnumeric(request.querystring("ID")&"") then pageID = cint(request.querystring("ID")) else pageID = 0
set rs = Conn.execute("select * from aa_submenu where menuid="& pageID)
while not rs.eof
    Response.write "<p><a href=""go.asp?id="& pageID &"&amp;subID="& rs("id") &""">"& rs("submenunavn") &"</a></p>"
    rs.MoveNext
wend
%>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
  </div>
  <hr>
</div>
</body>
</html>
<%
Conn.Close
Set Conn = Nothing

%>


Jeg har desuden rettet lidt i dit script. Der er ingen grund til at lukke database forbindelsen før sidst på siden. Den kan genbruges, så du er fri for at oprette forbindelsen igen og igen.
Avatar billede fennec Nybegynder
27. september 2005 - 15:58 #8
Den tekst, der tilhører submenuerne, skal den hentes fra "aa_link" tabellen??
Avatar billede martin100 Nybegynder
27. september 2005 - 16:06 #9
du er simpelthen genial fennec.

det var præcis sådan! Prøv så lige at se her.
http://www.2mwebdesign.dk/garanti/go1.asp?

Hvis jeg trykker på vores boliger og tykker på en submenu, så skal den ændre teksten ved basic tekst forstår du hvad jeg mener?
Avatar billede fennec Nybegynder
27. september 2005 - 16:14 #10
Var det en bekraftelse på mit ? i post 15:58:59 :o)

Hvor hentes teksten til submenuer fra??
aa_menu har en tekst kolonne, men der er ikke angivet en tekst kolonne på aa_submenu, så hvor kommer teksten til submenuer fra???
Avatar billede martin100 Nybegynder
27. september 2005 - 16:16 #11
jeg har lavet en ny tabel i aa_submenu!

tekst hentes fra tekst i aa_submenu
Avatar billede martin100 Nybegynder
27. september 2005 - 16:17 #12
ligesom med teksten fra aa_menu
Avatar billede fennec Nybegynder
27. september 2005 - 16:24 #13
Ændre:
if not len(Request.Querystring("id"))=0 then

strSQL = "Select * From aa_menu Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
Response.Write rs("tekst")
end if

Til dette:
if isnumeric(request.querystring("ID")&"") then pageID = cint(request.querystring("ID")) else pageID = 0
if isnumeric(request.querystring("subID")&"") then subPageID = cint(request.querystring("subID")) else subPageID = 0

if subPageID <> 0 then
  Set rs = Conn.Execute("Select * From aa_submenu Where Id = " & subPageID)
  Response.Write rs("tekst")
elseif pageId <> 0 then
  Set rs = Conn.Execute("Select * From aa_menu Where Id = " & pageID)
  Response.Write rs("tekst")
end if
Avatar billede martin100 Nybegynder
27. september 2005 - 16:29 #14
Du er genial. Har et spørgsmål endnu engang!

Hvad så når man opdatere teksten der ved basic tekst. Hvordan får man billeder ind i den tekst? Kan det overhovedet lade sig gøre? eller skal det være på en anden måde så?
Avatar billede fennec Nybegynder
27. september 2005 - 16:36 #15
Du kan skrive HTML koden direkte i teksten, så teksten i databasen bliver sådan:

her kan du se hvilke boliger vi har tilsalg ved at klikke på de undermenuer i venstre side <img src="billed.jpg" border="0">
Avatar billede martin100 Nybegynder
27. september 2005 - 18:37 #16
Fennec.

Prøv at se www.2mwebdesign.dk/garanti/deafult1.asp

Hvad skal jeg gøre, hvis jeg f.eks vil lave en kontakt formular når man trykker på kontakt os? Er det ikke nemmere at lave det til sider? Så man lave forskellige ting på de forskellige sider?
Avatar billede martin100 Nybegynder
27. september 2005 - 18:37 #17
Avatar billede fennec Nybegynder
28. september 2005 - 08:31 #18
Da en formular er almindelig HTML, kan den sagtens laves som kode i database, men du kan også hardcode den:

Do
    strNavn = rs("menunavn")
    Response.Write "<a href=""?id=" & rs("id") & """>" & strNavn & "</a>"
    rs.MoveNext
    if not rs.eof  then Response.Write strLink & "  |  "
    if rs.eof  then Response.Write strLink
Loop While Not rs.EOF
Response.Write "  |  "
Response.Write "<a href=""kontakt.asp"">Kontakt os</a>"

Problemet ved at hardcode noget er at man mister det dynamiske ved siderne, men nogen gange er det den bedste løsning. Hvis det bare er en helt almindelig HTML formular, vil jeg derfor anbefale, at du laver det i databasen.

Det er kun et krav at formularen er HTML. Den kan sagtens sende til en ASP side, hvis du skal gemme oplysningerne i databasen eller sende dem som email.
Avatar billede rashid Praktikant
29. september 2005 - 22:33 #19
jeg lytter med :-)
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