GimboMedlem sedan dec. 20001 626 inlägg Den där koden va lite skum, korrigerade den lite, men jag förstår inte hur den är tänkt att fungera, och vad datatyperna i access databasen ska se ut, just nu har jag det så här:
tblMenyer
intPK -Räknare
intParentID -Tal
intMenuID - Tal
strNamn - Text
strLink - Text
har matat in testvärden i databasen men det fungerar inte så här ser koden ut:
<% '//Menyn med undermenyer
Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databasen.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open Conn
strSQL = "SELECT DISTINCT intMenuID, strNamn, strLink FROM tblMenyer WHERE intParentID = 0"
Set rsParent = connect.Execute (strSQL)
While Not rsParent.EOF
Response.Write "<a href="" " &rsParent("strLink")& " & "&rsParent("strName")& " ""</a>"
If Cint(Request.Querystring("id")) = Cint(rsParent("id")) Then
strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = " & intParentID & ";"
Set rsChild = connect.Execute (strSQL)
While Not rsChild.EOF
Reponse.Write "<a href="" " &rsChild("strLink")& " & " &rsChild("strName")& " ""</a>"
Wend
End If
Wend
%>
får felmeddelandet:
Microsoft JET Database Engine (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
men jag har värden i databasen
Engine^Medlem sedan dec. 20003 887 inlägg Har du satt alla toppmenyers intParentID till 0?
Sedan såg jag att jag gjort en tabbe också :)
strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = " & [b]rsParent("intMenuID")[/b] & ";"
Set rsChild = connect.Execute (strSQL)
GimboMedlem sedan dec. 20001 626 inlägg fungerar fortfarande inte:
<% '//Menyn
Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databasen.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open Conn
strSQL = "SELECT * FROM tblMenyer WHERE intParentID = 0"
Set rsParent = connect.Execute(strSQL)
While Not rsParent.EOF
Response.Write "<a href=""index.asp?id= " &rsParent("strLink")& " ""> " &rsParent("strName")& " </a>"
If Cint(Request.Querystring("id")) = Cint(rsParent("id")) Then
strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = " & rsParent("intMenuID") & ";"
Set rsChild = connect.Execute (strSQL)
While Not rsChild.EOF
Reponse.Write "<a href="" " &rsChild("strLink")& " ""> " &rsChild("strName")& " </a>"
Wend
End If
Wend
%>
pillade lite på response.write, jag tycker inte de ser så speciellt rätt ut, det ska ju se ut på följande sätt index.asp?IntParentId=0&intMenuId=1 eller ngt sånt
eller har jag fel?
Engine^Medlem sedan dec. 20003 887 inlägg Nja... det beror ju på hur du använder din Querystring. Det jag har föreslagit är egentligen bara en mall, som kräver en del ändringar för att du ska kunna använda den till ditt ändamål.
Huvudmeny1 'strLink = "index.asp?Id=1"
-undermeny1.1 'strLink = "index.asp?Id=1?Page=undermeny1.1.asp"
Länkarna och hur du vill använda dom styr utseendet på din Querystring. Dvs. strLink består i det här exemplet av index.asp + querystring.
GimboMedlem sedan dec. 20001 626 inlägg ok, men om vi börjar om från början, och skippar det här med strLink, dvs så här vill jag att menyn ska vara uppbyggt, till höger visas adressen på querystringen. Där sida är en speciell sida med speciell innehålloch sektion är en koll som kollar om det finns en undermeny
Meny1 (index.asp?sida=1&sektion=1) <--- visar undermeny ty sektion=1
-meny1.1 (index.asp?sektion=1&pageID=1)
-meny1.2 -meny1.1 (index.asp?sektion=1&pageID=2)
Meny2 (index.asp?sida=2&sektion=2)
..... innehåller ingen under rubirk exempelvis, men eftersom sida=2 ändras innehållet på sidan
Meny3 (index.asp?sida=1&sektion=3) <--- visar innehållet av sida=1 fast har en undermeny ty sektion=3
-meny3.1(index.asp?sektion=3&pageID=6)
osv.
hoppas ni förstår vag jag menar??
Engine^Medlem sedan dec. 20003 887 inlägg tblMenyer
------------
intPK | intParentID | intMenuID | strName | strLink
---------------------------------------------------
1 | 0 | 1 | Meny1 | sida=1&sektion=1
2 | 0 | 2 | Meny2 | sida=2&sektion=2
3 | 0 | 3 | Meny3 | sida=1&sektion=3
4 | 1 | 1 | Meny1.1 | sektion=1&pageID=1
5 | 1 | 2 | Meny1.2 | sektion=1&pageID=2
6 | 3 | 1 | Meny3.1 | sektion=3&pageID=6
---------------------------------------------------
intPK är förvisso onödig, eftersom en unik nyckel kan bildas genom en kombination av intParentID och intMenuID.
Dim strSQL, rsParent, rsChild, qryID
Set rsParent = Server.CreateObject("ADODB.RecordSet")
Set rsChild = Server.CreateObject("ADODB.RecordSet")
[blue]'Skapa menyer...[/blue]
strSQL = "SELECT intMenuID, strName, strLink FROM tblMenyer WHERE intParentID = 0;"
Set rsParent = connect.Execute (strSQL, , 1)
qryID = Request.QueryString("sektion")
While Not rsParent.EOF
Response.Write "<a href=""index.asp?" & rsParent("strLink") & """>" & rsParent("strName") & "</a>"
If qryID = rsParent("intMenuID") Then
strSQL = "SELECT strName, strLink FROM tblMenyer WHERE intParentID = " & rsParent("intMenuID") & ";"
Set rsChild = connect.Execute (strSQL, , 1)
While Not rsChild.EOF
Response.Write "-<a href=""index.asp?" & rsChild("strLink") & """>" & rsChild("strName") & "</a>"
rsChild.MoveNext
Wend
End If
rsParent.MoveNext
Wend
[blue]'Visa sidan... vet ej hur du har tänkt göra det
'men kanske något sånt här...[/blue]
If Not IsNull(Request.QueryString("sida")) Then
Server.Execute("pages.asp?sida=" & Request.QueryString("sida"))
End If
If Not IsNull(Request.QueryString("pageID")) Then
Server.Execute("pages.asp?pageID=" & Request.QueryString("pageID"))
End If
Fungerar inte det här, så får jag väl ge upp med att försöka få in dig på mitt spår ;)
GimboMedlem sedan dec. 20001 626 inlägg fick det inte att fungera, men tack för infot och tålamodet ändå :)
Engine^Medlem sedan dec. 20003 887 inlägg Det var så lite så :)
Jag hoppas bara att du förstog min ide, så kanske du kan ordna till koden så att det fungerar för dig.