Avatar billede simsen Mester
10. januar 2005 - 12:16 Der er 17 kommentarer og
1 løsning

Include fil med if sætning

Jeg har nedennævnte kode - kører jeg siden - får jeg en "Siden kan ikke vises fejl" - men udskifter jeg <!-- #include file="dbcompressBlomst.vb" --> (og selvfølgelig de andre også) med en tekst f.eks. Davs - så viser den godt nok siden. Hvordan får jeg det lavet sådan - at alt efter hvilken id den tager med over - skal den includere en anden fil?

<%
response.write "DAVS"
response.write request.querystring("ID")

if request.querystring("ID") = "Blomst" then
Response.write "<!-- #include file="dbcompressBlomst.vb" -->"
end if

if request.querystring("ID") = "Mad" then
Response.write "<!-- #include file="dbcompressMad.vb" -->"
end if

if request.querystring("ID") = "Adm" then
Response.write "<!-- #include file="dbcompressAdm.vb" -->"
end if
%>
Avatar billede nelander Nybegynder
10. januar 2005 - 12:27 #1
Brug i stedet funktionen Server.Execute
Du bruger den sådan her:

strFil = "" & Request.QueryString( "ID" ) & ".vb"
Server.Execute( strFil )
Avatar billede nelander Nybegynder
10. januar 2005 - 12:28 #2
Hov, nu fik jeg skrevet det som kommentar.
Hvis det er svar nok, så accepter her i stedet ;)
Avatar billede simsen Mester
10. januar 2005 - 12:35 #3
nelander

Jeg får stadig "Siden kan ikke vises" fejl, når jeg bruger din metode

<%
response.write "DAVS"
response.write request.querystring("ID")

strFil = "dbcompress" & Request.QueryString("ID") & ".vb"
Server.Execute( strFil )

%>
Avatar billede fennec Nybegynder
10. januar 2005 - 12:36 #4
... Du skal bare være opmærksom på at server.execute funktionen har nogle begrænsninger. F.eks. kan du ikke dele variabler.

includeFil.asp:
response.write enVar

test.asp
enVar = "udskriv dette..."
server.execute("includeFil.asp")

Vil ikke resultere i en udskrift af enVar. Det ville det deri mod hvis man brugte #include
Avatar billede simsen Mester
10. januar 2005 - 12:40 #5
fennec

Så skal jeg bruge include - men hvordan får jeg så min kode til at virke?
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 12:46 #6
<%
response.write "DAVS"
response.write request.querystring("ID")

if request.querystring("ID") = "Blomst" then
%>
<!-- #include file="dbcompressBlomst.vb" -->
<%
end if

...osv. Men include i ASP er bøvlet og gammeldags
Avatar billede fennec Nybegynder
10. januar 2005 - 12:48 #7
Så bliver du nød til at lave en masse if sætninger. Ellers skal du overføre variablerne i url'en:
server.execute("enSide.asp?Id=23&enAndenVar=test")

...men det er heller ikke sikkert det er en brubar løsning for dig. Du kan nemlig stadig ikke dele variablerne "tilbage" igen.
Avatar billede simsen Mester
10. januar 2005 - 12:50 #8
erik
Når jeg gør som du skriver - og kun holder mig til én - så får jeg den korrekt nok ud - men igen - forsøger jeg mig med 2 - så får jeg igen "Siden kan ikke vises"

if request.querystring("ID") = "Blomst" then
%>
<!-- #include file="dbcompressBlomst.vb" -->
<%
end if
%>
<%
if request.querystring("ID") = "Mad" then
%>
<!-- #include file="dbcompressMad.vb" -->
<%
end if
%>
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 12:53 #9
Ja, den browser. Inden du fortsætte, så indstil din Internet Explorer til at vise
dig den rigtige fejl. Eller nemmere: brug en anden browser. Du skal ikke finde dig
i ikke at vide hvad der er galt ;)
Avatar billede fennec Nybegynder
10. januar 2005 - 12:55 #10
#include og server.execute har noget at gøre med hvornår koden bliver kørt. Alle #include bliver "hentet" ind på siden INDEN NOGET ANDET KODE bliver kørt. Det er derfor man ikke kan bruge variabler her, for de er ikke blevet skabt endnu. Server.execute bliver først kørt når/hvis koden kommer hertil, men så kører den bare siden selvstændigt og returnere resultatet.

... Det du har laver der (ud fra erikjacobsen eks) burde ellers virke. Det er ikke sådan at der er en fejl på en af #include filerne??
Avatar billede fennec Nybegynder
10. januar 2005 - 12:56 #11
funktioner >> internetinstillinger >> avanceret >> fjer hak i "vis meddelser om uskadelige http-fejl"

Så får du den rigtige fejl.
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 12:56 #12
Problemet kan være at den samme variabel dim-mes to gange. Men det får vi at se, når
vi ser den rigtige fejlbesked. Men include i ASP er bøvlet og gammeldags. Hov - det har jeg jo sagt...
Avatar billede simsen Mester
10. januar 2005 - 13:02 #13
erik

Du havde ret:
Der opstod en Microsoft VBScript-kompileringsfejl fejl '800a0411'

Navnet er omdefineret

/Anja/Administration/DBOptimering/dbcompressMad.vb, line 3

Dim Provider, FilNavn

Og hvad vil du så lige have mig til at gøre - når nu include er bøvlet og gammeldags - og husk inden du svarer, jeg er stadig blond OG kvinde *griner*
Avatar billede simsen Mester
10. januar 2005 - 13:07 #14
fennec

Der er ingen fejl på include filerne - jeg har prøvet at køre dem enkeltvis
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 13:09 #15
Nu kan du se det er bøvlet ;)

Du kan dim-me dine variabler i den fil du inkluderer i, og fjerne dem i de filer
du inkluderer fra. Men så er man i gang med at ødelægge strukturen.

Og forslaget om at skifte til noget andet end ASP, vil du sikkert slet ikke høre om.

Jeg har ingen gode ideer...
Avatar billede simsen Mester
10. januar 2005 - 13:14 #16
erik

Det har du så evig ret i........er altså ikke nørd nok endnu til jeg vil skifte *griner*
Avatar billede fennec Nybegynder
10. januar 2005 - 13:18 #17
Som erikjacobsen også siger skal man være forsigtig med #include. Opfat det som om koden fra include filerne bliver indsat i koden (hvilket faktisk er det der sker). Derfor skal du (som erik også siger) kun bruge dim på "top" siden.

#include kan være meget kraftfuld, hvis man bruger det rigtigt. Det er sjældent godt at includere sider, som skaber HTML kode. Men det er MEGET godt til at includere egne ASP funktioner, så de kun ligger et sted.
Avatar billede simsen Mester
10. januar 2005 - 13:42 #18
Selv om det er mig meget imod - så har jeg lavet 3 startfiler istedet for - med nøjagtig det samme (altså undtaget include filen) - takker jer for jeres forsøg på at hjælpe :-)
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