---
title: "Något fel på min meny (anv databas) / Datavärden i snygg meny?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/133250-något-fel-på-min-meny-anv-databas-datavärden-i-snygg-meny"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "FreddeB"
published: "2005-08-24T16:32:08.000Z"
updated: "2005-09-01T09:26:50.000Z"
replies: 12
views: 562
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/133250-något-fel-på-min-meny-anv-databas-datavärden-i-snygg-meny"
---

# Något fel på min meny (anv databas) / Datavärden i snygg meny?

## #1 — FreddeB, 2005-08-24T16:32Z

Hej, jag behöver hjälp att få till min meny som ger ett felmedelande se bif.bild...

Första fältet i tabellen i databasen heter "kat" och 2:a heter "post" som då är tänkt ska bli en underkategori i menyn.

Alla svar är tacksamt mottagna!

koden ser ut som följer:

```
<SCRIPT LANGUAGE="JavaScript">

<!--

var gEBI = (document.getElementById) ? true : false;
var da = (document.all) ? true : false;
var lay = (document.layers) ? true : false;

function Meny(ID)
 {
 	var ktgID = "ktg_" + ID;
 	var imgID = "img_" + ID;
 	
 	if (gEBI)
 	{
 		ktgID = document.getElementById(ktgID);
 		imgID = document.getElementById(imgID);
 		//alert("gEBI");
 	}
 	else
 	{
 		if (da)
 		{
 			ktgID = document.all(ktgID);
 			imgID = document.all(imgID);
 			//alert("da");
 		}
 		else
 		{
 			if (lay)
 			{
 				//alert("lay");
 				//KtgID = document.layers(ktgID);
 				//imgID = document.layers(imgID);
 			}
 			else
 			{
 				alert("Sorry, your browser does not support this page!");
 			}
 		}
 	}
 	if (gEBI || da)
 	{
		if (ktgID.style.display == "none")
 		{
 			ktgID.style.display = "block";
 			imgID.src = "pilhoger.bmp";
 		}
 		else
 		{
 			ktgID.style.display = "none";
 			imgID.src = "pilhoger.bmp";
 		} 	
 	}
 	else
 	{
 		if (document.layers["ktg_"+ID].visibility == "hide")
 		{
 			document.layers["ktg_"+ID].visibility = "show";
 		//	imgID.src = "pilhoger.bmp";
 		}
 		else
 		{
 			document.layers["ktg_"+ID].visibility = "hide";
 		//	imgID.src = "pilhoger.bmp"
 		}
 	}

 }

var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav6up = (is_nav && (is_major >= 5));
var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie4up  = (is_ie && (is_major >= 4));
if (!(is_nav6up || is_ie4up))
{
	document.location.href = "utg_post.asp";
}
 //-->
</SCRIPT>
```

och inom \<body\>

```
<%	Set Connect = Server.CreateObject("ADODB.Connection")
 	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("data/budget_3_0.mdb") & ""
%>

<% 
set rs1 = connect.execute("SELECT DISTINCT kat FROM sum_post_bud_trans_utg ORDER BY kat")

counter = 1
%>

<% Do until rs1.Eof %>
<img id='img_<% =counter %>' src='pilhoger.bmp' border='0' onClick='java script: Meny(<% =counter %> );'> 
<a href='#' class='Meny' onClick='java script: Meny(<% =counter %> );'><b><% =rs1("kat") %></b></a><br>
<span id='ktg_<% =counter %>' style='display:none;'> 
<% set rs2=connect.execute("SELECT DISTINCT post FROM sum_post_bud_trans_utg where kat = '" & rs1("kat") & "' ORDER BY post") %>
<% Do until rs2.Eof %>
    <img src='pilhoger.bmp' border='0'><a href="utg_post.asp?grupp=<% =rs1("kat") %>&undergrupp=<% =rs2("post") %>" target="_blank"> 
<% =rs2("post") %></a><br>
<% counter = counter + 1 %>
<% rs2.Movenext
Loop
Rs2.Close %>
</span> 
<% rs1.Movenext
Loop
Rs1.Close %>
<% connect.close %>
```

Bilagor:

- [felmeddelande.jpg](https://www.webforum.nu/a/7386.jpg)

Permalänk: https://www.webforum.nu/p/133250

## #2 — Peter S, 2005-08-24T16:34Z

Hej!

Använd kodtaggar (&#91;kod\]kod här&#91;/kod\]) när du postar kod, så blir den lättare att följa.

Permalänk: https://www.webforum.nu/p/1662485

## #3 — FreddeB, 2005-08-24T17:49Z

Ok nu har jag redigerat Kodtaggarna...
Men har jag gjort rätt för övrigt eller är jag helt ute o cyklar på något ställe. 
Menyn fungerar ingenting förutom att den skriver ut alla kategorier under varan med en pil oxå...

Permalänk: https://www.webforum.nu/p/1662506

## #4 — emission, 2005-08-24T18:03Z

Felet ligger inte i ASP, utan i JavaScript. Kolla på rad 570 i den skapade sidan (view source). 

BTW så ska man inte skriva 

```

<a href="#" onClick="javascript:Meny(1);">
```

utan

```

<a href="#" onClick="Meny(1);">
```

"javascript:" ska bara användas om man kallar på funktioner från href.

Det är dock inte detta som genererat felet.

OBS! Forumet lägger in mellanslaget i "javascript" om du undrade. Om inte så gjorde det det ändå. :)

Permalänk: https://www.webforum.nu/p/1662510

## #5 — FreddeB, 2005-08-24T19:21Z

Tackar så mycket!! det fungerade perfa när jag gjorde som du sa.

Föresten, har du el någon annan nåt knep för att få posterna att visa sig bara genom att man för musen över kategorin och att dom sedan döljs när man för musen ut från kategorin. 
Så långt har jag kommit, men när jag för musen över posterna som jag precis har öppnat så stänger jag ju dom samtidigt...?? : (

min kod jag använde:

```
<a href='#' class='Meny' onMouseOver='Meny(<% =counter %> );' onMouseOut='Meny(<% =counter %> );'><b><% =rs1("kat") %></b></a><br>
```

Permalänk: https://www.webforum.nu/p/1662530

## #6 — emission, 2005-08-24T21:19Z

Du få gärna beskriva mer vad som ska hända. Kanske kan du lägga upp sidan så att man kan se den?

*Flyttning till Javascript-forumet begärd*

Permalänk: https://www.webforum.nu/p/1662561

## #7 — LarsG, 2005-08-25T07:15Z

Flyttas från ASP

Permalänk: https://www.webforum.nu/p/1662602

## #8 — FreddeB, 2005-08-27T08:06Z

Jo visst här är länken... 
<http://www.fredrik.bergqvist.se/budget_tillftest/utg_post.asp>

Jag skulle vilja att posterna kommer upp lite snyggt vid sidan om och över aktuell kategori. Ungefär som på <http://www.twinhelix.com/>  (menyn till vänster)

Kan man göra detta och även kunna visa värden från en databas i själva menyn?

Här är föresten koden till sidan:

```
<SCRIPT LANGUAGE="JavaScript">

<!--

var gEBI = (document.getElementById) ? true : false;
var da = (document.all) ? true : false;
var lay = (document.layers) ? true : false;

function Meny(ID)
 {
 	var ktgID = "ktg_" + ID;
 	var imgID = "img_" + ID;
 	
 	if (gEBI)
 	{
 		ktgID = document.getElementById(ktgID);
 		imgID = document.getElementById(imgID);
 		//alert("gEBI");
 	}
 	else
 	{
 		if (da)
 		{
 			ktgID = document.all(ktgID);
 			imgID = document.all(imgID);
 			//alert("da");
 		}
 		else
 		{
 			if (lay)
 			{
 				//alert("lay");
 				//KtgID = document.layers(ktgID);
 				//imgID = document.layers(imgID);
 			}
 			else
 			{
 				alert("Sorry, your browser does not support this page!");
 			}
 		}
 	}
 	if (gEBI || da)
 	{
		if (ktgID.style.display == "none")
 		{
 			ktgID.style.display = "block";
 			imgID.src = "pilhoger.bmp";
 		}
 		else
 		{
 			ktgID.style.display = "none";
 			imgID.src = "pilhoger.bmp";
 		} 	
 	}
 	else
 	{
 		if (document.layers["ktg_"+ID].visibility == "hide")
 		{
 			document.layers["ktg_"+ID].visibility = "show";
 		//	imgID.src = "pilhoger.bmp";
 		}
 		else
 		{
 			document.layers["ktg_"+ID].visibility = "hide";
 		//	imgID.src = "pilhoger.bmp"
 		}
 	}

 }

var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav6up = (is_nav && (is_major >= 5));
var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie4up  = (is_ie && (is_major >= 4));
if (!(is_nav6up || is_ie4up))
{
	document.location.href = "utg_post.asp";
}
 //-->

</SCRIPT>
```

inom BODY...

```
<%	Set Connect = Server.CreateObject("ADODB.Connection")
 	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("data/budget_3_0.mdb") & ""

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Set RecSet2 = Server.CreateObject("ADODB.Recordset")
	Set rs1 = Server.CreateObject("ADODB.Recordset")
	Set rs2 = Server.CreateObject("ADODB.Recordset")
	

Texter = "SELECT * FROM varden"
RecSet.Open Texter, Connect, adOpenStatic, adLockOptimistic
man = RecSet("visa_man")
RecSet.Close  

if man = 1 Then 
manad = "jan"
End if
if man = 2 Then 
manad = "feb"
End if
if man = 3 Then 
manad = "mar"
End if
if man = 4 Then 
manad = "apr"
End if
if man = 5 Then 
manad = "maj"
End if
if man = 6 Then 
manad = "jun"
End if
if man = 7 Then 
manad = "jul"
End if
if man = 8 Then 
manad = "aug"
End if
if man = 9 Then 
manad = "sep"
End if
if man = 10 Then 
manad = "okt"
End if
if man = 11 Then 
manad = "nov"
End if
if man = 12 Then 
manad = "dec"
End if 
%>

<% Texter = "SELECT * FROM varden"
RecSet.Open Texter, Connect, adOpenStatic, adLockOptimistic
VISA_SIDA = RecSet("visa_sida")
RecSet.Close %>

<% '===================================================================================================================== %>
<% ' utgifter %>
<% '===================================================================================================================== %>
<% ' ///////////////////sum_post_bud_trans UTGIFTER//////////////////// %>
<% If Request.QueryString("what") = "" Then %>
<table class="tabell">

<% 
Texter = "SELECT * FROM sum_kat_bud_trans_utg where not id = 'trans'"
rs1.Open Texter, Connect, adOpenStatic, adLockOptimistic
counter = 1
Do until rs1.Eof 
%>

	<span onMouseOver='Meny(<% =counter %> );' onMouseOut='Meny(<% =counter %> );'>
		<td class="katutg"><a href='#' class='Meny' onClick='Meny(<% =counter %> );'><% =rs1("kat") %></a></TD>
<% VARDE = rs1("" & manad & "_bud") - (rs1("" & manad & "_bud") * 2) %>
		<td title="Summering av posternas riktvärden knutna till kategorin <% =rs1("kat") %>" class="sumutg"><% =VARDE %></td>
<% VARDE = rs1("" & manad & "_trans") - (rs1("" & manad & "_trans") * 2) %>
		<td title="Summering av gjorda transaktioner knutna till kategorin <% =rs1("kat") %>" class="sumutg"><% =VARDE %></td>
		</tr>
		
		<td colspan="3">
		<span id='ktg_<% =counter %>' style='display:none;'> 
			<table class="tabell">
	
<% 
Texter = "SELECT * FROM sum_post_bud_trans_utg where not id = 'trans' and kat = '" & rs1("kat") & "'"
rs2.Open Texter, Connect, adOpenStatic, adLockOptimistic
Do until rs2.Eof 
%>
	
			<td class="katutg"><% =rs2("kat") %></td>
			<td class="katutg"><% =rs2("post") %></td>
<% VARDE = rs2("" & manad & "_bud") - (rs2("" & manad & "_bud") * 2) %>
			<td title="Riktvärde knutet till posten <% =rs2("post") %>" class="sumutg"><a class="lank" href="utg_post.asp?what=edititnow&open=yes&id=<% =rs2("id") %>" target="ovansida"><% =VARDE %></a></td>
<% VARDE = rs2("" & manad & "_trans") - (rs2("" & manad & "_trans") * 2) %>
			<td title="Summering av gjorda transaktioner knutna till posten <% =rs2("post") %>" class="sumutg"><a class="lank" href="utg_post.asp?what=edittrans&open=yes&typ=<% =rs2("typ") %>&kat=<% =rs2("kat") %>&post=<% =rs2("post") %>&transid=<% =rs2("id") %>" target="ovansida"><% =VARDE %></a></td>
			</tr>
		
<%
counter = counter + 1
rs2.Movenext
Loop
Rs2.Close 
%>

			</table>
		</span> 
		</td>
		</tr>
	</span> 

<%
rs1.Movenext
Loop
Rs1.Close 
%>

</table>

<% end if %>
```

Permalänk: https://www.webforum.nu/p/1663162

## #9 — FreddeB, 2005-08-27T20:11Z

Datavärden i snygg meny?

Jag skulle vilja att posterna kommer upp lite snyggt vid sidan om och över aktuell kategori. Ungefär som på <http://www.twinhelix.com/>  (menyn till vänster)

Här är länken till min meny... 
<http://www.fredrik.bergqvist.se/budget_tillftest/utg_post.asp>

Kan man göra detta och även kunna visa värden från en databas i själva menyn?

Här är föresten koden till min sida:
Tack för hjälpen!

```
<SCRIPT LANGUAGE="JavaScript">

<!--

var gEBI = (document.getElementById) ? true : false;
var da = (document.all) ? true : false;
var lay = (document.layers) ? true : false;

function Meny(ID)
 {
 	var ktgID = "ktg_" + ID;
 	var imgID = "img_" + ID;
 	
 	if (gEBI)
 	{
 		ktgID = document.getElementById(ktgID);
 		imgID = document.getElementById(imgID);
 		//alert("gEBI");
 	}
 	else
 	{
 		if (da)
 		{
 			ktgID = document.all(ktgID);
 			imgID = document.all(imgID);
 			//alert("da");
 		}
 		else
 		{
 			if (lay)
 			{
 				//alert("lay");
 				//KtgID = document.layers(ktgID);
 				//imgID = document.layers(imgID);
 			}
 			else
 			{
 				alert("Sorry, your browser does not support this page!");
 			}
 		}
 	}
 	if (gEBI || da)
 	{
		if (ktgID.style.display == "none")
 		{
 			ktgID.style.display = "block";
 			imgID.src = "pilhoger.bmp";
 		}
 		else
 		{
 			ktgID.style.display = "none";
 			imgID.src = "pilhoger.bmp";
 		} 	
 	}
 	else
 	{
 		if (document.layers["ktg_"+ID].visibility == "hide")
 		{
 			document.layers["ktg_"+ID].visibility = "show";
 		//	imgID.src = "pilhoger.bmp";
 		}
 		else
 		{
 			document.layers["ktg_"+ID].visibility = "hide";
 		//	imgID.src = "pilhoger.bmp"
 		}
 	}

 }

var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav6up = (is_nav && (is_major >= 5));
var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie4up  = (is_ie && (is_major >= 4));
if (!(is_nav6up || is_ie4up))
{
	document.location.href = "utg_post.asp";
}
 //-->

</SCRIPT>
```

inom BODY...

```
<%	Set Connect = Server.CreateObject("ADODB.Connection")
 	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("data/budget_3_0.mdb") & ""

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Set RecSet2 = Server.CreateObject("ADODB.Recordset")
	Set rs1 = Server.CreateObject("ADODB.Recordset")
	Set rs2 = Server.CreateObject("ADODB.Recordset")
	

Texter = "SELECT * FROM varden"
RecSet.Open Texter, Connect, adOpenStatic, adLockOptimistic
man = RecSet("visa_man")
RecSet.Close  

if man = 1 Then 
manad = "jan"
End if
if man = 2 Then 
manad = "feb"
End if
if man = 3 Then 
manad = "mar"
End if
if man = 4 Then 
manad = "apr"
End if
if man = 5 Then 
manad = "maj"
End if
if man = 6 Then 
manad = "jun"
End if
if man = 7 Then 
manad = "jul"
End if
if man = 8 Then 
manad = "aug"
End if
if man = 9 Then 
manad = "sep"
End if
if man = 10 Then 
manad = "okt"
End if
if man = 11 Then 
manad = "nov"
End if
if man = 12 Then 
manad = "dec"
End if 
%>

<% Texter = "SELECT * FROM varden"
RecSet.Open Texter, Connect, adOpenStatic, adLockOptimistic
VISA_SIDA = RecSet("visa_sida")
RecSet.Close %>

<% '===================================================================================================================== %>
<% ' utgifter %>
<% '===================================================================================================================== %>
<% ' ///////////////////sum_post_bud_trans UTGIFTER//////////////////// %>
<% If Request.QueryString("what") = "" Then %>
<table class="tabell">

<% 
Texter = "SELECT * FROM sum_kat_bud_trans_utg where not id = 'trans'"
rs1.Open Texter, Connect, adOpenStatic, adLockOptimistic
counter = 1
Do until rs1.Eof 
%>

	<span onMouseOver='Meny(<% =counter %> );' onMouseOut='Meny(<% =counter %> );'>
		<td class="katutg"><a href='#' class='Meny' onClick='Meny(<% =counter %> );'><% =rs1("kat") %></a></TD>
<% VARDE = rs1("" & manad & "_bud") - (rs1("" & manad & "_bud") * 2) %>
		<td title="Summering av posternas riktvärden knutna till kategorin <% =rs1("kat") %>" class="sumutg"><% =VARDE %></td>
<% VARDE = rs1("" & manad & "_trans") - (rs1("" & manad & "_trans") * 2) %>
		<td title="Summering av gjorda transaktioner knutna till kategorin <% =rs1("kat") %>" class="sumutg"><% =VARDE %></td>
		</tr>
		
		<td colspan="3">
		<span id='ktg_<% =counter %>' style='display:none;'> 
			<table class="tabell">
	
<% 
Texter = "SELECT * FROM sum_post_bud_trans_utg where not id = 'trans' and kat = '" & rs1("kat") & "'"
rs2.Open Texter, Connect, adOpenStatic, adLockOptimistic
Do until rs2.Eof 
%>
	
			<td class="katutg"><% =rs2("kat") %></td>
			<td class="katutg"><% =rs2("post") %></td>
<% VARDE = rs2("" & manad & "_bud") - (rs2("" & manad & "_bud") * 2) %>
			<td title="Riktvärde knutet till posten <% =rs2("post") %>" class="sumutg"><a class="lank" href="utg_post.asp?what=edititnow&open=yes&id=<% =rs2("id") %>" target="ovansida"><% =VARDE %></a></td>
<% VARDE = rs2("" & manad & "_trans") - (rs2("" & manad & "_trans") * 2) %>
			<td title="Summering av gjorda transaktioner knutna till posten <% =rs2("post") %>" class="sumutg"><a class="lank" href="utg_post.asp?what=edittrans&open=yes&typ=<% =rs2("typ") %>&kat=<% =rs2("kat") %>&post=<% =rs2("post") %>&transid=<% =rs2("id") %>" target="ovansida"><% =VARDE %></a></td>
			</tr>
		
<%
counter = counter + 1
rs2.Movenext
Loop
Rs2.Close 
%>

			</table>
		</span> 
		</td>
		</tr>
	</span> 

<%
rs1.Movenext
Loop
Rs1.Close 
%>

</table>

<% end if %>
```

Permalänk: https://www.webforum.nu/p/1663326

## #10 — RGB, 2005-08-28T01:28Z

Trådarna slås ihop.

Permalänk: https://www.webforum.nu/p/1663361

## #11 — J.N., 2005-08-29T12:52Z

HEJ!

Klart du kan göra en meny med databasanrop, lista ut vilken meny du önskar, sedan programmerar du in databasanrop och utskrift av menyalternativen i menyn.

Beroende på hur komplicerade inställningarna är till menyn, kan det vara svårt att få rätt på alla inställningar, men ta det bit för bit. Det är inte olösligt.

Om det går med det du har nu, undrar du säkert!
Eftersom allt hoppar runt när man klickar, vet jag inte ens om det kan kallas meny. Klart irriterande och svårnavigerat.

Men, är man ihärdig, och kompletterar med rätt kod, går det säkert, men jag hade nog fördragit att leta upp en ny.

Permalänk: https://www.webforum.nu/p/1663694

## #12 — FreddeB, 2005-09-01T09:16Z

Ok. Det var inget du hade gjort förut då?
Vi får se hur det blir med det för min del, kanske jag fortsätter med den jag har... kanske man är lite lat?
Tack i alla fall

Permalänk: https://www.webforum.nu/p/1664482

## #13 — J.N., 2005-09-01T09:26Z

HEJ!

Delvis, liten meny har jag gjort, men jag har skapat inställningsfiler från databas för specialplugins (läser en form av textfil) och även javascript, tex för dynamiska dropdowns.

Exempel på det senare finns på <http://www.atgconsulting.com/doublelist.asp>, ovanför "Browser Compatibility Issues". Utskriften av recordsetet i VB-koden ger Javascript som styr listrutorna dynamiskt.

På motsvarande vis gör man med en meny. Från den som fungerar med statiska värden, gör man en dynamisk variant som skapar det javascript som behövs med hjälp av rs, databas och diverse loopar etc.

Permalänk: https://www.webforum.nu/p/1664484

---

Tråden på webben: https://www.webforum.nu/amne/javascript/133250-något-fel-på-min-meny-anv-databas-datavärden-i-snygg-meny
