webForumDet fria alternativet

en liten fråga ang. allt i en sida :)

ASP

15 svar · 554 visningar · startad av l4g3

Medlem sedan mars 20032 inlägg
Frågan#1

Har fuskat lite med ASP ett tag men har ännu inte fått ett riktigt bra svar på en fråga jag har:

Hu gör man för att få allt på en sida, typ

länk 1 -> Går till visa länk 1

länk 2 -> Går till visa länk 2

länk 3 -> Går till visa länk 3

allt detta skall finnas på en och samma sida men visa bara när man klickar på respektive länk...

Troligen en riktig nybörjar fråga men så e jag ju en nybörjare :)

Tack på förhand - L4G3

Medlem sedan okt. 20005 273 inlägg
#2

Välkommen till wF!!
Det går att göra på flertalet sätt, antingen så har du olika include filer för olika länkar.....eller så hamtar du olika information från någon annan datakälla (databas, xml),beroende på vilken länk som aktiverats.

Men det hela bygger väl på att man har en mall (designen) där man visar olika information beroende vilken länk som aktiverats

Hoppas att det löser sig.

Mvh icaaq

Medlem sedan mars 20023 686 inlägg
#3

OM du tar och söker efter din fråga så lär du hitta mycket information här pga. av att den där frågan har varit uppe tidigare.

Medlem sedan sep. 20026 425 inlägg
#4

Välkommen till wF!
Du kan ju använda Querystrings tillsammans med Select Case och Server.Execute("sida.asp").

Lite kod (default.asp):

<a href="default.asp?kat=bilder">Bilder</a>
<br /><a href="default.asp?kat=info">Info</a>
<br />etc..

<%
Dim sida
sida = Request.Querystring("kat")

Select Case Sida
Case ""
Response.Redirect "default.asp?cat=default" 'startsidan
Case "bilder"
Server.Execute("bilder.asp")
Case "info"
Server.Execute("info.asp")
Case Else
Response.Write "Denna kategori finns inte.."
End Select

If Request.Querystring("kat")="default" Then
'saker som ska stå på startsidan
End If
%>

Ungefär så, hyfsat enkel kod och hoppas att du förstår.

Medlem sedan mars 20032 inlägg
#5

Medialabs: Sökte på olika sätt men hittade inget tillfredsställande svar :)

m_soderlund: tack för dit svar dock så var hela ideén att jag skulle slippa skapa andra sidor men med lite modifiering så löser jag nog det hela

Mvh L4G3

Medlem sedan mars 20015 287 inlägg
#6

Lägg "delsidorna i subbar då.

<a href="default.asp?sida=bilder">Bilder</a>
<br /><a href="default.asp?sida=info">Info</a>
<br />etc..

<%
Dim sida
sida = Request.Querystring("sida")

Select Case Sida
Case "bilder"
	Call bilder()
Case "info"
	Call info()
Case Else
	Call default()
End Select

sub bilder()
	response.write "Min lilla bildavdelning...."
End Sub

sub info()
	response.write "Min lilla infoavdelning...."
End Sub 

sub default()
	response.write "Min lilla defaultavdelning...."
End Sub 
%>
Medlem sedan maj 20031 173 inlägg
#7

Det här var intressant! Jag har en ifsats som kollar vilken sida man är på,

IF Request.Querystring("sida")="bilder" THEN

ELSEIF Request.Querystring("sida")="info" THEN

osv

Är det bättre att använda Select CASE? går det snabbare?

Har även hört en massa snack om att lägga alla sidor på en stor asp sida är bra/dumt. hur lyder den almänna uppfattningen i detta forum?

TACK!

Medlem sedan nov. 20017 144 inlägg
#8

Är det många sidor det handlar om så är en select case mycket bättre enligt min smak istället för att trixa med en massa elseif, det ser dessutom snyggare ut och blir lite mer överskådligt.
Vad gäller om det är bra eller dåligt med en ända stor sida är nog en smaksak. Själv brukar jag göra som m_soderlund, alltså exekvera olika sidor med server.execute, det skapar lite mera ordning i mina tankar.
En megasida är svår att administrera, men annars så har den väl inte så mycket nackdelar.

Medlem sedan dec. 20003 563 inlägg
#9

Om man kodar smart så finns ingen speciell nackdel med att användaren bara "kör" default-sidan.

Att använda select case framför en massa if-satser är nog inte bara snyggare, utan mycket möjligt lite snabbare. *Dock utan källa och test för detta*

När man kör en liknande kod:

select case request.querystring("site")
case "kontakta"
 server.execute("kontakta.asp")
case else
 server.execute("start.asp")
end select

Fördelen är att du inte behöver lägga in någon designkod i de andra filerna. Du skriver bara texten som skall synas, och placerar denna i designen som du skapat en gång i default-filen.

Medlem sedan maj 20031 173 inlägg
#10

ska genast byta ut mina ifsatser till select case... men är det bäst att att köra server.execute eller köra massa subbar? är det helt en smaksak eller går något fortare än det andra?

Medlem sedan nov. 20017 144 inlägg
#11

På en "vanlig" sida så gissar jag att det är marginellt.
Man kan ju även kombinera subbar med server.execute

sub bilder()
    server.execute"bilder.asp"
End Sub

Själv så döper jag sidorna så att det funkar med querystringen i server.execute.

page = ReQuest.QueryString("page")
server.execute page &".asp"
Medlem sedan maj 20031 173 inlägg
#12

Jag är lite inne på att ha allt i en enda stor fil, så jag testar nog sub modellen och lägger subbarna i dokumentet, hoppas det blir bra.

Medlem sedan mars 20015 287 inlägg
#13

Jag sitter o rensar lit bland mina gamla sidor, skript mm. Hittade en grej jag gjort som består av 30 aspfiler på totalt 109kb.
Där blev det ett fasligt ändrande i en massa filer hit och dit när jag skulle ändra lite sökvägar.

Slutsats: Tänka smart, tänk framåt. Lägg saker som ska kunna ändras lätt, sökvägar till bilder mm, i variabler som ändras på ett ställe.
Om det ska separeras i olika filer, separera smart samt se till att namnge filer samt skriv kommentarer så att du vid ett mycket senare tillfälle ändå kommer in i koden och förstår dig på den.

Medlem sedan maj 20031 173 inlägg
#14

Går det långsammare att dela upp det på flera sidor än att ha subbar?

jag testade med att dela upp det på flera sidor och använde Server.Execute("sida.asp") systemet. MEN det verkar inte som om de includes jag gjort på sidan som executerar de andra sidorna gäller för extra sidan. Dvs de funktioner som är inkluderat på första sidan hittas inte under de andra sidorna. varför inte det? någon som vet?

tack!

Medlem sedan dec. 200012 464 inlägg
#15

execute innebär att man skapar ett nytt kontext, dvs man delar ingen kod eller variabler mellan sidorna. Om du vill använda en funktion i den sida du gör execute på så måste du definera funktionen där också. Om du vill dela data mellan sidorna kan du använda session-variabler.

That's life.

Medlem sedan maj 20031 173 inlägg
#16

LarsG skrev:

execute innebär att man skapar ett nytt kontext, dvs man delar ingen kod eller variabler mellan sidorna. Om du vill använda en funktion i den sida du gör execute på så måste du definera funktionen där också. Om du vill dela data mellan sidorna kan du använda session-variabler.

That's life.

detta gäller även om man har subbar då? känns som hela vitsen med att dela upp det på flera sidor försvann... samt att använda Select Case istället för IF then satser... eller har jag missat något?

550 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
400 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
400 ms — ändringar (db)