webForumDet fria alternativet

Behöver hjälp med att göra om en befintlig asp meny som körs från databas

ASP

11 svar · 374 visningar · startad av Dashi

Medlem sedan jan. 2005296 inlägg
Frågan#1

Posta ut tidigare om att jag undra om någon kunde göra en meny till mig men eftersom de blir inget bra resultat ändå så tänkte jag fråga om någon kunde hjälpa mig att göra om min befintliga, behöver hjälp med denna så snabbt som möjligt för jag har en tidspress på mig till 17:00 idag så uppskatter verkligen er hjälp, denna jag har ser ut såhär:

Huvudgrupp
...-Undergrupp

Jag vill att det ska bli såhär:
Huvudgrupp
...-Undergrupp
......-Tredjegrupp

<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 = "images/pil.jpg";
 		}
 		else
 		{
 			ktgID.style.display = "none";
 			imgID.src = "images/pil.jpg";
 		} 	
 	}
 	else
 	{
 		if (document.layers["ktg_"+ID].visibility == "hide")
 		{
 			document.layers["ktg_"+ID].visibility = "show";
 		//	imgID.src = "images/pil.jpg";
 		}
 		else
 		{
 			document.layers["ktg_"+ID].visibility = "hide";
 		//	imgID.src = "images/pil.jpg"
 		}
 	}

 }

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 = "Meny_NS.asp";
}
 //-->
</script>

<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(masterdata_databas)
set rs1=conn.execute("SELECT DISTINCT grupp FROM [produkter] WHERE NOT grupp = 'Tom' ORDER BY grupp")

counter=1

%>
<% Do until rs1.Eof%>
<img id='img_<%=counter%>' src='images/pil.jpg' border='0' onClick='javascript: Meny(<%=counter%>);'> 
<a href='#' class='Meny' onClick='javascript: Meny(<%=counter%>);'><b><%=rs1("grupp")%></b></a><br>
<span id='ktg_<%=counter%>' style='display:none;'> 
<% set rs2=conn.execute("SELECT DISTINCT undergrupp FROM produkter where grupp = '" & rs1("grupp") & "' ORDER BY undergrupp")%>
<% Do until rs2.Eof%>
&nbsp;&nbsp;&nbsp;&nbsp;<img src='images/blank.gif' border='0'> <a href="produkter.asp?grupp=<%=rs1("grupp")%>&undergrupp=<%=rs2("undergrupp")%>" target="main"> 
<%=rs2("undergrupp")%></a><br>
<%  counter=counter+1 %>
<% rs2.Movenext
Loop
Rs2.Close %>
</span> 
<% rs1.Movenext
Loop
Rs1.Close %>
<% conn.close %>

Mvh //Darek

Medlem sedan feb. 200112 078 inlägg
#2

1. Är det fel på JavaScriptet eller på ASP-koden?
2. Vad är det för fel överhuvudtaget? Jag är inte så sugen på att gissa mig fram till ditt "problem".

Det underlättar för alla om du anger ett felmeddelande och eventuellt också beskriver vilken rad felet uppstår på. Alla dessa riktlinjer som är till för ASP-forumet hade du hittat i tråden Riktlinjer i ASP-forumet, om du hade bemödat dig med att läsa den.

Medlem sedan jan. 2005296 inlägg
#3

OveRRidE skrev:

1. Är det fel på JavaScriptet eller på ASP-koden?
2. Vad är det för fel överhuvudtaget? Jag är inte så sugen på att gissa mig fram till ditt "problem".

Det underlättar för alla om du anger ett felmeddelande och eventuellt också beskriver vilken rad felet uppstår på. Alla dessa riktlinjer som är till för ASP-forumet hade du hittat i tråden Riktlinjer i ASP-forumet, om du hade bemödat dig med att läsa den.

Javisst har jag läst det, och jag följer det också :)

Inget direkt fel, behöver hjälp att göra om koden så där kommer en undergrupp till, har klurat med koden men inte kommit fram hur jag ska lyckas, måste lägga till en rad till i asp koden förmodligen...

Medlem sedan jan. 2005296 inlägg
#4

så jag har nu lyckats lösa det så att det blir 2 undergrupper.. problemet är bara det nu att när jag trycker på länkarna hoppar dom fram och tillbaka typ kolla här för exempel:
http://192.168.0.3/visa/meny.asp

koden ser nu ut såhär:

<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";
 		}
 		else
 		{
 			ktgID.style.display = "none";
 		} 	
 	}
 	else
 	{
 		if (document.layers["ktg_"+ID].visibility == "hide")
 		{
 			document.layers["ktg_"+ID].visibility = "show";
 		//	imgID.src = "images/pil.jpg";
 		}
 		else
 		{
 			document.layers["ktg_"+ID].visibility = "hide";
 		//	imgID.src = "images/pil.jpg"
 		}
 	}

 }

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 = "Meny_NS.asp";
}
 //-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000" background="images/bg.gif">
<br>
<font size="2" face="Arial, Helvetica, sans-serif"> 
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(masterdata_databas)
set rs1=conn.execute("SELECT DISTINCT grupp FROM [produkter] WHERE NOT grupp = 'Tom' ORDER BY grupp")

counter=1

%>
<% Do until rs1.Eof%>
<img id='img_<%=counter%>' src='images/pil.jpg' border='0' onClick='javascript: Meny(<%=counter%>);'> 
<a href='#' class='Meny' onClick='javascript: Meny(<%=counter%>);'><b><%=rs1("grupp")%></b></a><br>
<span id='ktg_<%=counter%>' style='display:none;'> 
<% set rs2=conn.execute("SELECT DISTINCT undergrupp FROM produkter where grupp = '" & rs1("grupp") & "' ORDER BY undergrupp")%>
<%counter=2%>
<% Do until rs2.Eof%>
&nbsp;&nbsp;&nbsp;&nbsp;<img id='img_<%=counter%>' src='images/blank.gif' border='0' onClick='javascript: Meny(<%=counter%>);'> 
<a href='#' class='Meny' onClick='javascript: Meny(<%=counter%>);'><b><%=rs2("undergrupp")%></b></a><br>
<span id='ktg_<%=counter%>' style='display:none;'>
<% set rs3=conn.execute("SELECT DISTINCT tredjegrupp FROM produkter where undergrupp = '" & rs2("undergrupp") & "' ORDER BY tredjegrupp")%>
<% Do until rs3.Eof%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src='images/blank.gif' border='0'> <a href="produkter.asp?grupp=<%=rs1("grupp")%>&undergrupp=<%=rs2("undergrupp")%>&tredjegrupp=<%=rs3("tredjegrupp")%>" target="main"> 
<%=rs3("tredjegrupp")%></a><br>
<%  counter=counter+1 %>
<% rs3.Movenext
Loop
Rs3.Close %>
</span>
<% rs2.Movenext
Loop
Rs2.Close %>
</span> 
<% rs1.Movenext
Loop
Rs1.Close %>
<% conn.close %>
Medlem sedan maj 20033 218 inlägg
#5

hmm sitter inte på ditt lokala nät så länken fungerar inte!
Skicka gärna med länk som är ditt yttre IP

Medlem sedan jan. 2005296 inlägg
#6

Sjodahl skrev:

hmm sitter inte på ditt lokala nät så länken fungerar inte!
Skicka gärna med länk som är ditt yttre IP

oj förlåt :)
http://83.249.104.78/visa/meny.asp sådär kanske lättare

Medlem sedan jan. 2005296 inlägg
#7

Jag lyckades fixa det.. det skulle bli såhär för er som är nyfikna och för er andra som detta kan vara till hjälp för :)
I Databasen ligger grupp, undergrupp och tredjegrupp.

<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";
 		}
 		else
 		{
 			ktgID.style.display = "none";
 		} 	
 	}
 	else
 	{
 		if (document.layers["ktg_"+ID].visibility == "hide")
 		{
 			document.layers["ktg_"+ID].visibility = "show";
 		//	imgID.src = "images/pil.jpg";
 		}
 		else
 		{
 			document.layers["ktg_"+ID].visibility = "hide";
 		//	imgID.src = "images/pil.jpg"
 		}
 	}

 }

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 = "Meny_NS.asp";
}
 //-->
</script>

<font size="2" face="Arial, Helvetica, sans-serif"> 
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(masterdata_databas)
set rs1=conn.execute("SELECT DISTINCT grupp FROM [produkter] WHERE NOT grupp = 'Tom' ORDER BY grupp")

counter=1

%>
<% Do until rs1.Eof%>
<img id='img_<%=counter%>' src='images/pil.jpg' border='0' onClick='javascript: Meny(<%=counter%>);'> 
<a href='#' class='Meny' onClick='javascript: Meny(<%=counter%>);'><b><%=rs1("grupp")%></b></a><br>
<span id='ktg_<%=counter%>' style='display:none;'>
<% set rs2=conn.execute("SELECT DISTINCT undergrupp FROM produkter where grupp = '" & rs1("grupp") & "' ORDER BY undergrupp")%>
<%  counter=counter+1 %>
<% Do until rs2.Eof%>
&nbsp;&nbsp;&nbsp;&nbsp;<img id='img_<%=counter%>' src='images/blank.gif' border='0' onClick='javascript: Meny(<%=counter%>);'> 
<a href='#' class='Meny' onClick='javascript: Meny(<%=counter%>);'><b><%=rs2("undergrupp")%></b></a><br>
<span id='ktg_<%=counter%>' style='display:none;'>
<% set rs3=conn.execute("SELECT DISTINCT tredjegrupp FROM produkter where undergrupp = '" & rs2("undergrupp") & "' ORDER BY tredjegrupp")%>
<% Do until rs3.Eof%>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src='images/blank.gif' border='0'> <a href="produkter.asp?grupp=<%=rs1("grupp")%>&undergrupp=<%=rs2("undergrupp")%>&tredjegrupp=<%=rs3("tredjegrupp")%>" target="main"> 
<%=rs3("tredjegrupp")%></a><br>
<%  counter=counter+1 %>
<% rs3.Movenext
Loop
Rs3.Close %>
</span>
<% rs2.Movenext
Loop
Rs2.Close %>
</span> 
<% rs1.Movenext
Loop
Rs1.Close %>
<% conn.close %>

Mvh //Darek

Medlem sedan feb. 200112 078 inlägg
#8

Hade du inte läst Riktlinjerna? När man har ett korrekt svar i tråden så markerar man inlägget som hjälpte dig/lösningen genom att klicka på Acceptera som slutgiltigt svar bredvid inlägget. I det här fallet ditt eget. Men, jag gör det åt dig istället.

Dessutom, ett tips är att inte göra såhär;

<% 
rs2.movenext %>
<% Loop %>
<% rs2.close %>
<% 'osv osv %>

Det ser lite snyggare ut på detta sätt, så slipper du en miljard kontext-switchar;

<%
rs2.movenext
Loop
rs2.close
'osv osv %>

Vidare så råder jag dig fortfarande till att byta ut din ur-gamla Access-drivrutin som du använder;

conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(masterdata_databas)

mot den mycket snabbare JET;

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(masterdata_databas)
Medlem sedan jan. 2005296 inlägg
#9

OveRRidE skrev:

Hade du inte läst Riktlinjerna? När man har ett korrekt svar i tråden så markerar man inlägget som hjälpte dig/lösningen genom att klicka på Acceptera som slutgiltigt svar bredvid inlägget. I det här fallet ditt eget. Men, jag gör det åt dig istället.

Dessutom, ett tips är att inte göra såhär;

<% 
rs2.movenext %>
<% Loop %>
<% rs2.close %>
<% 'osv osv %>

Det ser lite snyggare ut på detta sätt, så slipper du en miljard kontext-switchar;

<%
rs2.movenext
Loop
rs2.close
'osv osv %>

Vidare så råder jag dig fortfarande till att byta ut din ur-gamla Access-drivrutin som du använder;

conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(masterdata_databas)

mot den mycket snabbare JET;

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(masterdata_databas)

visste inte man skulle acceptera på sina egna inlägg eller så glömde jag det, men jag kom på det sen :)

Ska faktist lyda ditt råd och prova med den nya drivern :)

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(masterdata_databas)

Tack för omtanken förresten :)

Mvh //Darek

Medlem sedan feb. 20032 027 inlägg
#10

<%rs2.movenext: Loop%> ger mindre rader :-)

Medlem sedan juni 2000974 inlägg
#11

Istället för detta nedan skulle du kunna göra en includefil (close.asp) där du har texten nedan och sedan bara hänvisa till filen. Lägg in detta på din sida: <!-- #include file="close.asp" -->
<%
rs2.movenext
Loop
rs2.close
'osv osv %>

Medlem sedan juni 200032 967 inlägg
#12

Riffles, det där låter som ett dåligt förslag. Det finns ingen anledning att bryta ut de kodraderna till en egen includefil. Det gör det bara svårare att följa koden. Det gäller även WebbisNets förslag; visserligen blir det färre kodrader, men koden blir krångligare att hänga med i.

Det finns i så fall andra saker som är vettigare att korrigera i sin kod. Indentering till exempel.

279 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)