Avatar billede mik Nybegynder
09. august 2005 - 09:12 Der er 6 kommentarer og
1 løsning

Indsættelse af tegn (streg) i mneu

Nedenstående er koden der genererer en menu. Det jeg gerne vil have den til et at når selve menuteksten er evt <hr> (som laver en streg, må den ikke lave det således at det er et hyperlink. Busschou har tidligere hjulpet med denne menu måske han kan igen.


<!-- #INCLUDE FILE="inc.asp" -->
<%
u_user=request.querystring("u_user")
' assigns the variable u_number to the value
' that u_value contains in the url
%>
<%
varUser=request.form("u_user")
%>
<HTML>
<HEAD>
<LINK rel="stylesheet" type="text/css" href="style.css">
<title>Links <%= u_user %></title>
<base target="main">

<SCRIPT>
foer = null;

function highlight(lnk) {
<%if u_user="fab" then%>
if (foer)
  foer.style.color = "#FFFFFF";
  lnk.style.color = "#FFFF00";
  foer = lnk;
}
<%elseif u_user="wab" then%>
if (foer)
  foer.style.color = "#000000";
  lnk.style.color = "#FFFF00";
  foer = lnk;
}
<%elseif u_user="mab" then%>
if (foer)
  foer.style.color = "#FFFFFF";
  lnk.style.color = "#FFFF00";
  foer = lnk;
}
<%else%>
if (foer)
  foer.style.color ="#FFFFFF";
  lnk.style.color = "#FFFF00";
  foer = lnk;
}
<%end if%>
</SCRIPT>

</HEAD>
</html>

<SCRIPT>
function MenuClick(tal) {
  var tal_str = "" + tal
  var tal_arr = tal_str.split(",")
  var y = document.getElementById("txt_" + tal_arr[0]);
  var lukket = true;
  if(y.style.display == ''){
    lukket = false;
  }
  LukMenu();
  if(lukket){
    y.style.display = '';
    document.getElementById(tal_arr[0]).src = 'images/minus.gif';
  }
  for (i=1; i<tal_arr.length; i++){
    var txt = document.getElementById("txt_" + tal_arr[i]);
    txt.style.display = '';
    var img = document.getElementById(tal_arr[i]);
    img.src = 'images/minus.gif';
  }
}
function LukMenu(){
  var x=document.getElementsByTagName("DIV")
  for (i = 0; i < x.length; i++){
    x[i].style.display = 'none'
  }
  x = document.getElementsByTagName("IMG")
  for (i = 0; i < x.length; i++){
  var src_arr = x[i].src.split("/")
  if (src_arr[src_arr.length-1] == 'minus.gif'){
    x[i].src = 'images/plus.gif'
  }
  }
}
</SCRIPT>



</HEAD>
<body class="menu<%= u_user %>">


<%
Dim varUser
varUser = u_user

LavDatabase Conntemp

SQL = "SELECT ID, Navn, Link, User, Target, Beskrivelse  FROM Menu WHERE MenuID < 0 and User= ('" & varUser & "') 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
        Response.Write "<A class=menu" & varUser & " HREF=""" & RS("Link") & """ OnClick=""highlight(this);LukMenu();"" TARGET=""" & RS("Target") & """>" & RS("Navn") & "</A>"&vbCrLf 
    RS.MoveNext
    Wend
End If
LukDatabase Conntemp
%>



<br>
<b><font size="4">&nbsp;<u>Undermenuer</u></font></b><br>
<br>


<%
Function BygMenu(MenuID)
    OverSQL = "SELECT ID, Navn, Link, User, Target, Beskrivelse FROM Menu WHERE MenuID = 0 and User= ('" & varUser & "') ORDER BY [Order]"
    Call OpenRS(Conntemp,OverSQL,UnderRS)
   
    While Not UnderRS.EOF
    Response.Write "<A class=menu" & varUser & " HREF=""" & UnderRS("Link") & " OnClick=""highlight(this);"" TARGET="""">" & UnderRS("Navn") & ""

        Response.Write "<A HREF=""#"" OnClick=""MenuClick('" & UnderRS("ID") & "," & Liste & "');highlight(this);""><B>" & UnderRS("Navn") & "</B></A><BR>"&vbCrLf

    UnderRS.MoveNext
    Wend

End Function


Function BygUnderMenu(MenuID,Liste)
  UnderSQL = "SELECT ID, Navn, Link, User, Target, Beskrivelse FROM Menu WHERE MenuID = " & MenuID & " and User= ('" & varUser & "') ORDER BY [Order]"
Call OpenRS(Conntemp,UnderSQL,UnderRS)
Response.Write "<DIV ID=""txt_" & MenuID & """ STYLE=""display: none; margin-left: 10px;"">"&vbCrLf
  While Not UnderRS.EOF
  If CountSubs(UnderRS("ID")) > 0 Then
    Response.Write "<A class=menu" & varUser & " HREF=""fra_main.htm"" OnClick=""MenuClick('" & UnderRS("ID") & "," & Liste & "');highlight(this);""><B><img id="""&UnderRS("ID")&""" src=""images/plus.gif"" width=13 height=12 border=0>" & UnderRS("Navn") & "</B></A>"&vbCrLf
    Liste = UnderRS("ID") & "," & Liste
    Call BygUnderMenu (UnderRS("ID"), Liste)
'Til hvert underkald fjernes hovedet af listen så rekursiviteten kører   
  temp = Split(Liste,",")
  if UBound(temp) > 0 then
    nyListe = ""
    temp = Split(Liste,",")
    for t=1 to UBound(temp)
    if t=1 then
      nyListe = temp(t)
    else
      nyListe = nyListe &","& temp(t)
    end if
    next
    Liste = nyListe
  else
    Liste = MenuID
  end if
   
  Else
    Response.Write "<A class=menu" & varUser & " OnClick=""highlight(this);"" HREF=""" & UnderRS("Link") & """ TARGET=""" & UnderRS("Target") & """><img src=""images/leaf.gif"" width=13 height=12 border=0>" & UnderRS("Navn") & "</A>"&vbCrLf
  End If
  UnderRS.MoveNext
  Wend
Response.Write "</DIV>"
End Function


Function CountSubs(MenuID)
    CountSQL = "SELECT ID, User FROM Menu WHERE MenuID = " & MenuID & " and User= ('" & varUser & "')"
    Call OpenRS(Conntemp,CountSQL,CountRS)
    CountSubs = CountRS.RecordCount
End Function


LavDatabase Conntemp

SQL = "SELECT ID, Navn, Link, User, Target, Beskrivelse  FROM Menu WHERE MenuID = 0 and User= ('" & varUser & "') ORDER BY [Order]"


Call OpenRS(Conntemp,SQL,RS)

If RS.BOF AND RS.EOF Then
    Response.Write "Ingen data"
Else
    RS.MoveFirst
        While Not RS.EOF
            If CountSubs(RS("ID")) > 0 Then
                Response.Write "<A class=menu" & varUser & " HREF=""fra_main.htm""  TARGET=" & RS("Target") & " OnClick=""MenuClick(" & RS("ID") & ");highlight(this);""><B><img id="""&RS("ID")&""" src=""images/plus.gif"" width=13 height=12 border=0>" & RS("Navn") & "</B></A>"&vbCrLf
                Call BygUnderMenu (RS("ID"),RS("ID"))
            Else
                Response.Write "<A class=menu" & varUser & " HREF=""" & RS("Link") & """><img src=""images/leaf.gif"" width=13 height=12 border=0>" & RS("Navn") & "</A>"&vbCrLf
            End If
            RS.MoveNext
        Wend
End If

   
LukDatabase Conntemp
%>



<br>


</center>

</BODY>
</HTML>
Avatar billede busschou Praktikant
09. august 2005 - 10:02 #1
man må vist ikke spørge specifikt til nogen herinde :o)
Men nu jeg alligevel er her så ser jeg da gerne på det
--
Men hvorfor ønsker du at indsætte en <hr> i selve din menu?
Hvis det er fordi du ønsker funktionalitet som det var to menuer
Så kunne du jo lave to menuer i stedet, og så adskille dem med en <hr> uden om menu koden
Avatar billede busschou Praktikant
09. august 2005 - 10:03 #2
hvis ikke...
Er det så sådan at det kun er en overmenu du sætter til <hr> eller kan man risikere det også er en undermenu?
Avatar billede busschou Praktikant
09. august 2005 - 10:07 #3
hvis det kun er overmenuer, så vil jeg næsten tro du kan klare det i denne her
----
If RS.BOF AND RS.EOF Then
    Response.Write "Ingen data"
Else
    RS.MoveFirst
        While Not RS.EOF
            If CountSubs(RS("ID")) > 0 Then
                Response.Write "<A class=menu" & varUser & " HREF=""fra_main.htm""  TARGET=" & RS("Target") & " OnClick=""MenuClick(" & RS("ID") & ");highlight(this);""><B><img id="""&RS("ID")&""" src=""images/plus.gif"" width=13 height=12 border=0>" & RS("Navn") & "</B></A>"&vbCrLf
                Call BygUnderMenu (RS("ID"),RS("ID"))
            Else
                Response.Write "<A class=menu" & varUser & " HREF=""" & RS("Link") & """><img src=""images/leaf.gif"" width=13 height=12 border=0>" & RS("Navn") & "</A>"&vbCrLf
            End If
            RS.MoveNext
        Wend
End If
----
ved at lave det om til
----
If RS.BOF AND RS.EOF Then
  Response.Write "Ingen data"
Else
  RS.MoveFirst
  While Not RS.EOF
    If RS("Navn") = "<hr>" Then
      Response.write "<hr>"
    Else
      If CountSubs(RS("ID")) > 0 Then
        Response.Write "<A class=menu" & varUser & " HREF=""fra_main.htm""  TARGET=" & RS("Target") & " OnClick=""MenuClick(" & RS("ID") & ");highlight(this);""><B><img id="""&RS("ID")&""" src=""images/plus.gif"" width=13 height=12 border=0>" & RS("Navn") & "</B></A>"&vbCrLf
        Call BygUnderMenu (RS("ID"),RS("ID"))
      Else
        Response.Write "<A class=menu" & varUser & " HREF=""" & RS("Link") & """><img src=""images/leaf.gif"" width=13 height=12 border=0>" & RS("Navn") & "</A>"&vbCrLf
      End If
    End If
    RS.MoveNext
  Wend
End If
----
Herved tjekker den på om navnet er lig <hr> hvilket jeg forstår det som om du ønsker?
Hvis ikke så laver den en normal menu, og ellers udskriver den en <hr>
Avatar billede mik Nybegynder
09. august 2005 - 10:31 #4
Det skal jeg huske til næste gang, det med at stile spørgsmålet til en nbestemt.

Det virker sådan set OK, men hvis man vil lave det samme med "overmenuen". Grunder til at jeg vil lave en streg er at man kan lave en adskillelse mellem menupunkterne på en fiks måde.
Avatar billede busschou Praktikant
09. august 2005 - 10:35 #5
altså de aller øverste links?
så skal det her vel tilsvarende rettes fra
---
If RS.BOF AND RS.EOF Then
    Response.Write "FEJL"
Else
    RS.MoveFirst
    While Not RS.EOF
        Response.Write "<A class=menu" & varUser & " HREF=""" & RS("Link") & """ OnClick=""highlight(this);LukMenu();" TARGET=""" & RS("Target") & """>" & RS("Navn") & "</A>"&vbCrLf
    RS.MoveNext
    Wend
End If
---
til
---
If RS.BOF AND RS.EOF Then
  Response.Write "FEJL"
Else
  RS.MoveFirst
  While Not RS.EOF
    If RS("Navn") = "<hr>" Then
      response.write "<hr>"
    Else
      Response.Write "<A class=menu" & varUser & " HREF=""" & RS("Link") & """ OnClick=""highlight(this);LukMenu();" TARGET=""" & RS("Target") & """>" & RS("Navn") & "</A>"&vbCrLf
    End If
  RS.MoveNext
  Wend
End If
Avatar billede mik Nybegynder
09. august 2005 - 10:45 #6
Det virker bare, tak for hjælpen, lægger du lige et svar.
Avatar billede busschou Praktikant
09. august 2005 - 10:47 #7
det var så lidt da :o)
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