31. juli 2005 - 02:44Der er
45 kommentarer og 1 løsning
Hent link og target frame til menu fra Access database.
Hej Har et lille problem med min menu, har arbejdet lidt på en menu jeg fandt på nettet. Menuen virker fint, men problemet er at man skal hente target frame fra en access database, hvilket ikke fungere.....
Link, navn og rækkefølge virker fint.
Nogle af mine sider skal hentes til Midtframe og nogen i _blank. Men når man indtaser det i databasen får man intet output til siden ud over ""
scriptet ser sådan ud ....
<% Function BygUnderMenu(MenuID) UnderSQL = "SELECT ID, Navn, Link FROM Menu WHERE MenuID = " & MenuID & " ORDER BY [Order]" Call OpenRS(Conntemp,UnderSQL,UnderRS)
Response.Write "<DIV ID=""txt_" & MenuID & """ STYLE=""display: none; margin-left: 10px;"">" While Not UnderRS.EOF If CountSubs(UnderRS("ID")) > 0 Then Response.Write "<A HREF=""#"" OnClick=""MenuClick(" & UnderRS("ID") & ")""><B>" & UnderRS("Navn") & "</B></A><BR>" BygUnderMenu UnderRS("ID") Else Response.Write "<A HREF=""" & UnderRS("Link") & """ Target="""">" & UnderRS("Navn") & "<BR>" End If UnderRS.MoveNext Wend Response.Write "</DIV>" End Function
Function CountSubs(MenuID) CountSQL = "SELECT ID FROM Menu WHERE MenuID = " & MenuID & "" Call OpenRS(Conntemp,CountSQL,CountRS) CountSubs = CountRS.RecordCount End Function
LavDatabase Conntemp
SQL = "SELECT ID, Navn, Link FROM Menu WHERE MenuID = 0 ORDER BY [Order]" Call OpenRS(Conntemp,SQL,RS)
If RS.BOF AND RS.EOF Then Response.Write "FEJL" Else RS.MoveFirst While Not RS.EOF If CountSubs(RS("ID")) > 0 Then Response.Write "<A HREF=""#"" OnClick=""MenuClick(" & RS("ID") & ")""><B>" & RS("Navn") & "</B></A><BR>" BygUnderMenu RS("ID") Else Response.Write "<A HREF=""" & RS("Link") & """>" & RS("Navn") & "<BR>" End If RS.MoveNext Wend End If
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du skal udvide din tabel med et ekstra felt - Target - og så skulle det være sådan her:
<% Function BygUnderMenu(MenuID) UnderSQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = " & MenuID & " ORDER BY [Order]" Call OpenRS(Conntemp,UnderSQL,UnderRS)
Response.Write "<DIV ID=""txt_" & MenuID & """ STYLE=""display: none; margin-left: 10px;"">" While Not UnderRS.EOF If CountSubs(UnderRS("ID")) > 0 Then Response.Write "<A HREF=""#"" TARGET=""" & RS("Target") & """ OnClick=""MenuClick(" & UnderRS("ID") & ")""><B>" & UnderRS("Navn") & "</B></A><BR>" BygUnderMenu UnderRS("ID") Else Response.Write "<A HREF=""" & UnderRS("Link") & """ TARGET=""" RS("Target") & """>" & UnderRS("Navn") & "</A><BR>" End If UnderRS.MoveNext Wend Response.Write "</DIV>" End Function
Function CountSubs(MenuID) CountSQL = "SELECT ID FROM Menu WHERE MenuID = " & MenuID & "" Call OpenRS(Conntemp,CountSQL,CountRS) CountSubs = CountRS.RecordCount End Function
LavDatabase Conntemp SQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = 0 ORDER BY [Order]" Call OpenRS(Conntemp,SQL,RS)
If RS.BOF AND RS.EOF Then Response.Write "FEJL" Else RS.MoveFirst While Not RS.EOF If CountSubs(RS("ID")) > 0 Then Response.Write "<A HREF=""#"" TARGET=""" & RS("Target") & """ OnClick=""MenuClick(" & RS("ID") & ")""><B>" & RS("Navn") & "</B></A><BR>" BygUnderMenu RS("ID") Else Response.Write "<A HREF=""" & RS("Link") & """ TARGET=""" & RS("Target") & """>" & RS("Navn") & "</A><BR>" End If RS.MoveNext Wend End If
LukDatabase Conntemp %>
Synes godt om
Slettet bruger
31. juli 2005 - 12:26#4
Her lige prøvet dit forslag men får følgende fejl..... Microsoft VBScript compilation error '800a0401'
<% Function BygUnderMenu(MenuID) UnderSQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = " & MenuID & " ORDER BY [Order]" Call OpenRS(Conntemp,UnderSQL,UnderRS)
Response.Write "<DIV ID=""txt_" & MenuID & """ STYLE=""display: none; margin-left: 10px;"">" While Not UnderRS.EOF If CountSubs(UnderRS("ID")) > 0 Then Response.Write "<A HREF=""#"" TARGET=""" & RS("Target") & """ OnClick=""MenuClick(" & UnderRS("ID") & ")""><B>" & UnderRS("Navn") & "</B></A><BR>" BygUnderMenu UnderRS("ID") Else Response.Write "<A HREF=""" & UnderRS("Link") & " TARGET=""" RS("Target") & """>" & UnderRS("Navn") & "</A><BR>" End If UnderRS.MoveNext Wend Response.Write "</DIV>" End Function
Function CountSubs(MenuID) CountSQL = "SELECT ID FROM Menu WHERE MenuID = " & MenuID & "" Call OpenRS(Conntemp,CountSQL,CountRS) CountSubs = CountRS.RecordCount End Function
LavDatabase Conntemp SQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = 0 ORDER BY [Order]" Call OpenRS(Conntemp,SQL,RS)
If RS.BOF AND RS.EOF Then Response.Write "FEJL" Else RS.MoveFirst While Not RS.EOF If CountSubs(RS("ID")) > 0 Then Response.Write "<A HREF=""#"" TARGET=""" & RS("Target") & """ OnClick=""MenuClick(" & RS("ID") & ")""><B>" & RS("Navn") & "</B></A><BR>" BygUnderMenu RS("ID") Else Response.Write "<A HREF=""" & RS("Link") & " TARGET=""" & RS("Target") & """>" & RS("Navn") & "</A><BR>" End If RS.MoveNext Wend End If
Du får lige en version hvor "" er udbyttet med '. Forhåbentlig så gåt det bedre med at poste denne:
<% Function BygUnderMenu(MenuID) UnderSQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = " & MenuID & " ORDER BY [Order]" Call OpenRS(Conntemp, UnderSQL, UnderRS)
Response.Write "<DIV ID='txt_" & MenuID & "' STYLE='display: none; margin-left: 10px;'>" While Not UnderRS.EOF If CountSubs(UnderRS("ID")) > 0 Then Response.Write "<A HREF='#' TARGET='" & RS("Target") & "' OnClick='MenuClick(" & UnderRS("ID") & ")'><B>" & UnderRS("Navn") & "</B></A><BR>" BygUnderMenu UnderRS("ID") Else Response.Write "<A HREF='" & UnderRS("Link") & "' TARGET='" RS("Target") & "'>" & UnderRS("Navn") & "</A><BR>" End If UnderRS.MoveNext Wend Response.Write "</DIV>" End Function
Function CountSubs(MenuID) CountSQL = "SELECT ID FROM Menu WHERE MenuID = " & MenuID Call OpenRS(Conntemp, CountSQL, CountRS) CountSubs = CountRS.RecordCount End Function
LavDatabase Conntemp SQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = 0 ORDER BY [Order]" Call OpenRS(Conntemp, SQL, RS)
If RS.BOF AND RS.EOF Then Response.Write "FEJL" Else RS.MoveFirst While Not RS.EOF If CountSubs(RS("ID")) > 0 Then Response.Write "<A HREF='#' TARGET='" & RS("Target") & "' OnClick='MenuClick(" & RS("ID") & ")'><B>" & RS("Navn") & "</B></A><BR>" BygUnderMenu RS("ID") Else Response.Write "<A HREF='" & RS("Link") & "' TARGET='" & RS("Target") & "'>" & RS("Navn") & "</A><BR>" End If RS.MoveNext Wend End If
Nu virker det fint, men ser ud til at alle undermenuer skal være samme frame som overmenuerne, for at det virker.... !!..... Hvilket ikke er så fedt, se resultatet af det her http://test.chicken-shit.dk og se Kommunikation ..... Gæstebog er sat til _blank og alle andre er sat til Midtframe...... overmenuen er os sat til Midtframe ellers ville alle andre links, under overmenuen åbne i nyt vindug.....
Sådan ... så skulle den også kunne klare tomme targets:
<% Function BygUnderMenu(MenuID) UnderSQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = " & MenuID & " ORDER BY [Order]" Call OpenRS(Conntemp, UnderSQL, UnderRS)
Response.Write "<DIV ID='txt_" & MenuID & "' STYLE='display: none; margin-left: 10px;'>" While Not UnderRS.EOF If CountSubs(UnderRS("ID")) > 0 Then Response.Write "<A HREF='#'" If "" & RS("Target") = "" Then Response.Write " TARGET='" & RS("Target") & "'" End If Response.Write " OnClick='MenuClick(" & UnderRS("ID") & ")'><B>" & UnderRS("Navn") & "</B></A><BR>" BygUnderMenu UnderRS("ID") Else Response.Write "<A HREF='" & UnderRS("Link") & "'" If "" & RS("Target") = "" Then Response.Write " TARGET='" RS("Target") & "'" End If Response.Write ">" & UnderRS("Navn") & "</A><BR>" End If UnderRS.MoveNext Wend Response.Write "</DIV>" End Function
Function CountSubs(MenuID) CountSQL = "SELECT ID FROM Menu WHERE MenuID = " & MenuID Call OpenRS(Conntemp, CountSQL, CountRS) CountSubs = CountRS.RecordCount End Function
LavDatabase Conntemp SQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = 0 ORDER BY [Order]" Call OpenRS(Conntemp, SQL, RS)
If RS.BOF AND RS.EOF Then Response.Write "FEJL" Else RS.MoveFirst While Not RS.EOF If CountSubs(RS("ID")) > 0 Then Response.Write "<A HREF='#'" If "" & RS("Target") Then Response.Write " TARGET='" & RS("Target") & "'" End If Response.Write " OnClick='MenuClick(" & RS("ID") & ")'><B>" & RS("Navn") & "</B></A><BR>" BygUnderMenu RS("ID") Else Response.Write "<A HREF='" & RS("Link") & "'" If "" & RS("Target") = "" Then Response.Write " TARGET='" & RS("Target") & "'" End If Response.Write ">" & RS("Navn") & "</A><BR>" End If RS.MoveNext Wend End If
Der er ikke noget som skal erstattes med noget som helst andet end det allerede er. Det skal bogstaveligt talt stå sådan som det er postet. :^)
Synes godt om
Slettet bruger
02. august 2005 - 21:27#31
oki, men i tilfælde af at det bare skal copy pastes, så virker scriptet ikke.... Men prøvlige at upload det, så er vi sikker på at der ikke er nogen tegn gået tabt...
Hvis det ikke virker, så må du meget gerne beskrive hordan fejlen tager sig id.
Mht. at uploade så henviser jeg til det jeg skerv 02/08-2005 20:15:36. Kun ved at holde al koden her på sitet kan vi være sikre på at de andre bruger her på Ekspertem ikke går glip af noget.
Jeg har lige kigget koden igennem, og jeg fandt faktisk to fejl som nu er rettet:
<% Function BygUnderMenu(MenuID) UnderSQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = " & MenuID & " ORDER BY [Order]" Call OpenRS(Conntemp, UnderSQL, UnderRS)
Response.Write "<DIV ID='txt_" & MenuID & "' STYLE='display: none; margin-left: 10px;'>" While Not UnderRS.EOF If CountSubs(UnderRS("ID")) > 0 Then Response.Write "<A HREF='#'" If "" & RS("Target") = "" Then Response.Write " TARGET='" & RS("Target") & "'" End If Response.Write " OnClick='MenuClick(" & UnderRS("ID") & ")'><B>" & UnderRS("Navn") & "</B></A><BR>" BygUnderMenu UnderRS("ID") Else Response.Write "<A HREF='" & UnderRS("Link") & "'" If "" & RS("Target") = "" Then Response.Write " TARGET='" & RS("Target") & "'" End If Response.Write ">" & UnderRS("Navn") & "</A><BR>" End If UnderRS.MoveNext Wend Response.Write "</DIV>" End Function
Function CountSubs(MenuID) CountSQL = "SELECT ID FROM Menu WHERE MenuID = " & MenuID Call OpenRS(Conntemp, CountSQL, CountRS) CountSubs = CountRS.RecordCount End Function
LavDatabase Conntemp SQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = 0 ORDER BY [Order]" Call OpenRS(Conntemp, SQL, RS)
If RS.BOF AND RS.EOF Then Response.Write "FEJL" Else RS.MoveFirst While Not RS.EOF If CountSubs(RS("ID")) > 0 Then Response.Write "<A HREF='#'" If "" & RS("Target") = "" Then Response.Write " TARGET='" & RS("Target") & "'" End If Response.Write " OnClick='MenuClick(" & RS("ID") & ")'><B>" & RS("Navn") & "</B></A><BR>" BygUnderMenu RS("ID") Else Response.Write "<A HREF='" & RS("Link") & "'" If "" & RS("Target") = "" Then Response.Write " TARGET='" & RS("Target") & "'" End If Response.Write ">" & RS("Navn") & "</A><BR>" End If RS.MoveNext Wend End If
LukDatabase Conntemp %>
Synes godt om
Slettet bruger
02. august 2005 - 23:21#34
Sådan det var bedre..... Nu er overmenuerne og undermenuerne uafhængige af hinanden... + forside link problemet er væk... Men nu henter undermenuerne slet ikke target fra databasen.... Alle åbner i nyt vindug. ???
Det var sgu' en rigtig DOH! den der. Du skal rette de 4 steder hvor der står:
If "" & RS("Target") = "" Then
- til:
If "" & RS("Target") <> "" Then
Synes godt om
Slettet bruger
07. august 2005 - 19:52#38
samme problem som før .... Men nu henter undermenuerne slet ikke target fra databasen.... Alle åbner i nyt vindug. ??? .... Dog har jeg lagt mærke til at hvis overmenuen er sat til feks Midtframe vil alle undermenuer åbne på samme måde som overmenuen.....
Jeg var kommer til at skrive "RS" inde i BygUnderMenu - det skal selvfølgeligt være "UnderRS":
Function BygUnderMenu(MenuID) UnderSQL = "SELECT ID, Navn, Link, Target FROM Menu WHERE MenuID = " & MenuID & " ORDER BY [Order]" Call OpenRS(Conntemp, UnderSQL, UnderRS)
Response.Write "<DIV ID='txt_" & MenuID & "' STYLE='display: none; margin-left: 10px;'>" While Not UnderRS.EOF If CountSubs(UnderRS("ID")) > 0 Then Response.Write "<A HREF='#'" If "" & UnderRS("Target") <> "" Then Response.Write " TARGET='" & UnderRS("Target") & "'" End If Response.Write " OnClick='MenuClick(" & UnderRS("ID") & ")'><B>" & UnderRS("Navn") & "</B></A><BR>" BygUnderMenu UnderRS("ID") Else Response.Write "<A HREF='" & UnderRS("Link") & "'" If "" & UnderRS("Target") <> "" Then Response.Write " TARGET='" & UnderRS("Target") & "'" End If Response.Write ">" & UnderRS("Navn") & "</A><BR>" End If UnderRS.MoveNext Wend Response.Write "</DIV>" End Function
Synes godt om
Slettet bruger
07. august 2005 - 20:58#41
HAHA du er genial .... TAK NU VIRKER DET SKU !!!
hvis du lige smider et svar her inde så får du 150 MEGET VEL FORTJENT POINTS :D
nu vil jeg lige teste det hele igennem og så vil der ligge en endelig pakket zip fil, som intrasserede kan hente ....
hehe sorry ... har jeg sku ik tænkt på :P Den kommer ihvertifald på nu :D
Synes godt om
Ny brugerNybegynder
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.