19. marts 2005 - 18:51
Der er
30 kommentarer og 1 løsning
Ændre CSS i JavaScript ud fra ASP-Variabel
Hej Eksperter Ja lidt et spørgsmål som kunne have været placeret mange steder :o) Jeg har en dynamisk menu i javascript, som bliver bestemt af et asp-script. Se nedenstående: ------------------------------------------------------------------------------------------ <div class="style3" style="padding-top:10px"> <% 'Henter menustruktur fra database Set rs_menu = Server.CreateObject("ADODB.RecordSet") rs_menu.open "Select * From [Pages] where Site_Id = " & Site_Id & "" , Conn %> <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); <% do while not rs_menu.EOF 'Udskriver menu Id = rs_menu("Id") Page_Name = rs_menu("Page_Name") relation = rs_menu("page_relation") Page_Level = (Cint(rs_menu("Page_Level")) + 1) 'Udskriver værdien af menu, enten true, eller false Menu = rs_menu("Menu") %> d.add(<%=id%>,<%=relation%>,'<%=Page_Name%>','page.asp?page_id=<%=id%>&Page_Level=<%=Page_Level%>&Page_Relation=<%=id%>'); <% 'Looper felterne rs_menu.MoveNext Loop 'recordset lukkes rs_menu.close %> document.write(d); //--> </script> </div> ------------------------------------------------------------------------------------------ Hvis værdien af "menu" er false skal linjen skrives med rød skrift, altså CSS filen skal i stedet for at hente Style3 hente Style4. Men alle mine forsøg er mislykkedes, så jeg håber der er en der kan overskue det :o) På forhånd tak!!! // Morten
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
20. marts 2005 - 14:57
#1
hvad får du af fejl?
20. marts 2005 - 16:56
#2
Jeg får ikke så meget fejl - for jeg ved ikke hvor jeg skal indsætte det.. Men det jeg har prøvet indtil videre har resulteret i at menuen bare ikke vises.
20. marts 2005 - 17:04
#3
hvis jeg forstår dig ret, så skal du vel bare gøre som følger: If menu = false then Response.write("<div class=""style4"" style=""padding-top:10px"">") Else Response.write("<div class=""style3"" style=""padding-top:10px"">") End If
20. marts 2005 - 17:05
#4
det var et svar
20. marts 2005 - 17:14
#5
Ja det er jeg klar over - men problemet er vel at loopet først kommer inde i javascriptet - jeg har lige testet det der, og det virker ikke :o( Hvis man kigger på kildekoden kommer der til at stå: <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); <div class="style3"> d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); </div> <div class="style3"> d.add(2,0,'Zantiago CMS','page.asp?page_id=2&Page_Level=2&Page_Relation=2'); </div> <div class="style3"> d.add(3,2,'Priser','page.asp?page_id=3&Page_Level=3&Page_Relation=3'); </div> <div class="style3"> d.add(4,2,'Moduler','page.asp?page_id=4&Page_Level=3&Page_Relation=4'); </div> <div class="style3"> d.add(5,0,'Hvem er vi?','page.asp?page_id=5&Page_Level=2&Page_Relation=5'); </div> <div class="style3"> d.add(6,0,'Kontakt','page.asp?page_id=6&Page_Level=2&Page_Relation=6'); </div> <div class="style3"> d.add(7,3,'Test på priser','page.asp?page_id=7&Page_Level=4&Page_Relation=7'); </div> <div class="style3"> d.add(8,3,'Test på priser 2','page.asp?page_id=8&Page_Level=4&Page_Relation=8'); </div> <div class="style3"> d.add(10,0,'Testside1','page.asp?page_id=10&Page_Level=2&Page_Relation=10'); </div> <div class="style3"> d.add(11,0,'Testside 2','page.asp?page_id=11&Page_Level=2&Page_Relation=11'); </div> document.write(d); //--> </script>
20. marts 2005 - 17:17
#6
Menuen kommer simpelthen ikke frem...
20. marts 2005 - 17:19
#7
den kode du har vist i toppe, kan ikke give det du skriver for div'en er uden for loopet
20. marts 2005 - 17:21
#8
men du kan bare flytte lidt rundt på koden, så du flytter stedet hvor du erklære variablerne: <% 'Henter menustruktur fra database Set rs_menu = Server.CreateObject("ADODB.RecordSet") rs_menu.open "Select * From [Pages] where Site_Id = " & Site_Id & "" , Conn 'Udskriver menu Id = rs_menu("Id") Page_Name = rs_menu("Page_Name") relation = rs_menu("page_relation") Page_Level = (Cint(rs_menu("Page_Level")) + 1) 'Udskriver værdien af menu, enten true, eller false Menu = rs_menu("Menu") If menu = false then Response.write("<div class=""style4"" style=""padding-top:10px"">") Else Response.write("<div class=""style3"" style=""padding-top:10px"">") End If %> <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); <% do while not rs_menu.EOF %> d.add(<%=id%>,<%=relation%>,'<%=Page_Name%>','page.asp?page_id=<%=id%>&Page_Level=<%=Page_Level%>&Page_Relation=<%=id%>'); <% 'Looper felterne rs_menu.MoveNext Loop 'recordset lukkes rs_menu.close %> document.write(d); //--> </script> </div>
20. marts 2005 - 17:38
#9
Hvis jeg gør det på ovenstående metode vil alle Id, relation, Page_Name osv. jo være ens! Da de ikke indgår i loopet!!!
20. marts 2005 - 17:41
#10
Kigger med, lidt spændende :)
20. marts 2005 - 17:42
#11
okay, så det er ikke alt koden du har posted?
20. marts 2005 - 17:47
#12
Det forstår jeg ikke! Posted? ASP-Kode: --------------------------------------------------------------------------------------- <% 'Henter menustruktur fra database Set rs_menu = Server.CreateObject("ADODB.RecordSet") rs_menu.open "Select * From [Pages] where Site_Id = " & Site_Id & "" , Conn 'Udskriver menu Id = rs_menu("Id") Page_Name = rs_menu("Page_Name") relation = rs_menu("page_relation") Page_Level = (Cint(rs_menu("Page_Level")) + 1) If menu = false then Response.write("<div class=""style4"" style=""padding-top:10px"">") Else Response.write("<div class=""style3"" style=""padding-top:10px"">") End If %> <p><a href="java script: d.openAll();">Åben alle</a> | <a href="java script: d.closeAll();">Luk alle</a></p> <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); <% do while not rs_menu.EOF %> d.add(<%=id%>,<%=relation%>,'<%=Page_Name%>','page.asp?page_id=<%=id%>&Page_Level=<%=Page_Level%>&Page_Relation=<%=id%>'); <% 'Looper felterne rs_menu.MoveNext Loop 'recordset lukkes rs_menu.close %> </div> document.write(d); //--> </script> --------------------------------------------------------------------------------------- Output: --------------------------------------------------------------------------------------- <div class="style4" style="padding-top:10px"> <p><a href="java script: d.openAll();">Åben alle</a> | <a href="java script: d.closeAll();">Luk alle</a></p> <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); </div> document.write(d); //--> </script> ---------------------------------------------------------------------------------------
20. marts 2005 - 17:54
#13
posted mener jeg skrevet her. Den kode du lige har sat ind, er det hele koden for den side du har problemer med=?
20. marts 2005 - 17:56
#14
Der er ingen grund til at poste: <html> <head> osv... Det er ATL det relevante :o)
20. marts 2005 - 17:59
#15
og hvordan er det meningen det skal se ud?
20. marts 2005 - 18:04
#16
Her skrevet uden CSS: <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(2,0,'Zantiago CMS','page.asp?page_id=2&Page_Level=2&Page_Relation=2'); d.add(3,2,'Priser','page.asp?page_id=3&Page_Level=3&Page_Relation=3'); d.add(4,2,'Moduler','page.asp?page_id=4&Page_Level=3&Page_Relation=4'); d.add(5,0,'Hvem er vi?','page.asp?page_id=5&Page_Level=2&Page_Relation=5'); d.add(6,0,'Kontakt','page.asp?page_id=6&Page_Level=2&Page_Relation=6'); d.add(7,3,'Test på priser','page.asp?page_id=7&Page_Level=4&Page_Relation=7'); d.add(8,3,'Test på priser 2','page.asp?page_id=8&Page_Level=4&Page_Relation=8'); d.add(10,0,'Testside1','page.asp?page_id=10&Page_Level=2&Page_Relation=10'); d.add(11,0,'Testside 2','page.asp?page_id=11&Page_Level=2&Page_Relation=11'); d.add(12,0,'Mortens Ego Side','page.asp?page_id=12&Page_Level=2&Page_Relation=12'); d.add(13,1,'Forside Underside','page.asp?page_id=13&Page_Level=3&Page_Relation=13'); d.add(14,13,'set','page.asp?page_id=14&Page_Level=4&Page_Relation=14'); d.add(15,4,'Sitemap','page.asp?page_id=15&Page_Level=4&Page_Relation=15'); d.add(20,0,'Super testside','page.asp?page_id=20&Page_Level=2&Page_Relation=20'); document.write(d); //--> </script>
20. marts 2005 - 18:35
#17
er det meningen at der kun skal være en div uden om hele rækken?
20. marts 2005 - 18:38
#18
Altså hver række skal undersøges om den er true eller false - Derefter skal der bestemmes hvilken div class der skal bruges.. Lige nu er der bare en uden om det hele.
20. marts 2005 - 18:43
#19
okay, så det du fik 20/03-2005 17:14:54 var rigtig nok, der var bare style 3 hele vejen ned?
20. marts 2005 - 18:45
#20
ja men det virker ikke når man skriver en div inden i javascriptet - det er det som er mit problem :o)
20. marts 2005 - 18:48
#21
her er en løsning, hvor der kommer en div med for hver loop, og som tjekker i hvert loop efter true/false: <% 'Henter menustruktur fra database Set rs_menu = Server.CreateObject("ADODB.RecordSet") rs_menu.open "Select * From [Pages] where Site_Id = " & Site_Id & "" , Conn %> <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); <% do while not rs_menu.EOF If rs_menu("Menu") = false then Response.write("<div class=""style4"" style=""padding-top:10px"">") Else Response.write("<div class=""style3"" style=""padding-top:10px"">") End If 'Udskriver menu Id = rs_menu("Id") Page_Name = rs_menu("Page_Name") relation = rs_menu("page_relation") Page_Level = (Cint(rs_menu("Page_Level")) + 1) 'Udskriver værdien af menu, enten true, eller false Menu = rs_menu("Menu") %> d.add(<%=id%>,<%=relation%>,'<%=Page_Name%>','page.asp?page_id=<%=id%>&Page_Level=<%=Page_Level%>&Page_Relation=<%=id%>'); <% Response.write("</div>") 'Looper felterne rs_menu.MoveNext Loop 'recordset lukkes rs_menu.close %> document.write(d); //--> </script>
20. marts 2005 - 19:06
#22
Ja - Det har jeg prøvet - så forsvinder menuen :o(
20. marts 2005 - 19:20
#23
prøv lige at skriv et eksempel hvor menuen virker, så jeg ved hvordan strukturen skal være.
20. marts 2005 - 19:25
#24
Menuen som den er nu - med en tekstfarve -------------------------------------------------------------------------------------- <div class="style3"> <% 'Henter menustruktur fra database Set rs_menu = Server.CreateObject("ADODB.RecordSet") rs_menu.open "Select * From [Pages] where Site_Id = " & Site_Id & "" , Conn %> <p><a href="java script: d.openAll();">Åben alle</a> | <a href="java script: d.closeAll();">Luk alle</a></p> <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); <% do while not rs_menu.EOF 'Udskriver menu Id = rs_menu("Id") Page_Name = rs_menu("Page_Name") relation = rs_menu("page_relation") Page_Level = (Cint(rs_menu("Page_Level")) + 1) %> d.add(<%=id%>,<%=relation%>,'<%=Page_Name%>','page.asp?page_id=<%=id%>&Page_Level=<%=Page_Level%>&Page_Relation=<%=id%>'); <% 'Looper felterne rs_menu.MoveNext Loop 'recordset lukkes rs_menu.close %> document.write(d); //--> </script> </div> --------------------------------------------------------------------------------------
20. marts 2005 - 19:26
#25
Output bliver så: -------------------------------------------------------------------------------------- <div class="style3"> <p><a href="java script: d.openAll();">Åben alle</a> | <a href="java script: d.closeAll();">Luk alle</a></p> <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'Website'); d.add(1,0,'Forside','page.asp?page_id=1&Page_Level=2&Page_Relation=1'); d.add(2,0,'Zantiago CMS','page.asp?page_id=2&Page_Level=2&Page_Relation=2'); d.add(3,2,'Priser','page.asp?page_id=3&Page_Level=3&Page_Relation=3'); d.add(4,2,'Moduler','page.asp?page_id=4&Page_Level=3&Page_Relation=4'); d.add(5,0,'Hvem er vi?','page.asp?page_id=5&Page_Level=2&Page_Relation=5'); d.add(6,0,'Kontakt','page.asp?page_id=6&Page_Level=2&Page_Relation=6'); d.add(7,3,'Test på priser','page.asp?page_id=7&Page_Level=4&Page_Relation=7'); d.add(8,3,'Test på priser 2','page.asp?page_id=8&Page_Level=4&Page_Relation=8'); d.add(10,0,'Testside1','page.asp?page_id=10&Page_Level=2&Page_Relation=10'); d.add(11,0,'Testside 2','page.asp?page_id=11&Page_Level=2&Page_Relation=11'); d.add(12,0,'Mortens Ego Side','page.asp?page_id=12&Page_Level=2&Page_Relation=12'); d.add(13,1,'Forside Underside','page.asp?page_id=13&Page_Level=3&Page_Relation=13'); d.add(14,13,'set','page.asp?page_id=14&Page_Level=4&Page_Relation=14'); d.add(15,4,'Sitemap','page.asp?page_id=15&Page_Level=4&Page_Relation=15'); d.add(20,0,'Super testside','page.asp?page_id=20&Page_Level=2&Page_Relation=20'); document.write(d); //--> </script> </div> --------------------------------------------------------------------------------------
20. marts 2005 - 19:28
#26
20. marts 2005 - 19:36
#27
det er jo slet ikke muligt i den menu at style de enkelte punkter.
20. marts 2005 - 19:39
#28
Det skal det være... Jeg har set det blive gjort i andre javascript menuer, så det må kunne lade sig gøre :o)
20. marts 2005 - 19:43
#29
du kan helt sikkert i andre menuer, hvor der er lavet en option ti ldet, men det er der ikke så vidt jeg kan se i den menu du bruger her.
21. marts 2005 - 00:18
#30
Har fundet en løsning :o) -------------------------------------------------------------------------------------- If rs_menu("Menu") = "True" then Color = "#000000" Else Color = "#BB7F7F" End If Page_Name = "<font color=" & color & ">" & rs_menu("Page_Name") & "</font>" -------------------------------------------------------------------------------------- Jeg synes dog at du har fortjent pointsene, eftersom du har brugt hele din søndag på det :o) Smid et svar :o)
21. marts 2005 - 07:40
#31
det var godt du fandt en løsning. Jeg takker.
Kurser inden for grundlæggende programmering