Avatar billede mystart Nybegynder
22. februar 2001 - 09:48 Der er 24 kommentarer og
1 løsning

Variabler i include file

Hvordan kan jeg bruge variabler i en indlude file ?
Jeg har fundet ud af at include bliver kørt før scriptet, og jeg kan derfor ikke få det til at virke hvis jeg bruger variabler i include file, eks.
<!--# include file=\"file.asp?doubbleshot=<%=var1%>\" -->

Det kan jeg ikke :(
Hvad gør man??
Avatar billede bjarke-b Nybegynder
22. februar 2001 - 09:49 #1
Du kan slet ikke gøre det
Avatar billede wisen Nybegynder
22. februar 2001 - 09:53 #2
Så vidt jeg ved er en \"include\" bare en tekstuel substitution. Det vil sige, at hele filen \"file.asp\" bliver indsat dér hvor den er included... Det kan derfor ikke lade sig gøre...
Avatar billede dudal Nybegynder
22. februar 2001 - 09:59 #3
Det du kan gøre er at skrive variablen lige over hvor du includer filen...

<%
doubbleshot = var1
%>
<!--# include file=\"file.asp\" -->

I file.asp kan du så bare bruge doubbleshot.

/Jesper
Avatar billede mystart Nybegynder
22. februar 2001 - 10:00 #4
Det kan man ikke!!
Fordi ASP kører include før script!! Har jeg fået at vide!!
Avatar billede lange Nybegynder
22. februar 2001 - 10:01 #5
Det kan ikke lade sig gøre på den måde, du der beskriver, men der er en måde at \"overføre\" variable alligevel.

Som der er blevet svaret, bliver den includede fil bare indsat i koden, der hvor du laver din include. Med andre ord bliver den includede fil en del af den nuværende fil, hvorfor du kan tilgå alle variable erklæret i den nuværende fil.

Hvis du har brug for nogle bestemte værdier i din include-fil, ville ovenstående fx kunne skrives som:

\' Tildel værdier til includefilens variable
doubbleshot = var1
<!-- #include file=\"file.asp\" -->

Så behøver du ikke engang request dine variable i include-filen for at få fingre i værdierne...
Avatar billede dudal Nybegynder
22. februar 2001 - 10:02 #6
I know, men det vil give det samme som at lave en request.QueryString(\"doubbleshot\") i file.asp.

Prøv det. :-)

/Jesper
Avatar billede mystart Nybegynder
22. februar 2001 - 10:37 #7
I cant like that!! det virker vist ikke... prøver endnu engang!!
Er PHP ikke meget nemmere??? synes jeg
Avatar billede mystart Nybegynder
22. februar 2001 - 10:40 #8
Der skal stå én varibel i include!!
Eller ved den ikke hvad den skal skrive!!
<!--#include file=\"file.asp?Dok=request(WebDokId)\" -->
Avatar billede mystart Nybegynder
22. februar 2001 - 11:15 #9
anyone wanna help??
Avatar billede lange Nybegynder
22. februar 2001 - 11:26 #10
Jo, det er nemmere og bedre i PHP... men hvad er det, der ikke virker ved de ovenstående forslag, og som du vil have yderligere hjælp til?
Avatar billede mystart Nybegynder
22. februar 2001 - 11:34 #11
Altså ... variablerne skal hentes i includefilen!!
Altså include file=\"file.asp?var1=WebDokId\"
Som et eks.
Avatar billede lange Nybegynder
22. februar 2001 - 11:49 #12
Suk, får du en fejl, når du prøver forslagene, kan du ikke bruge variablene, er der ingen værdier i variablene, går serveren kold, bliver Tibet oversvømmet eller hvad sker der og sker der ikke, når du prøver forslagene?

Men ellers prøv denne lille test:

Lav 2 filer i samme dir, main.asp og inc.asp.

main.asp:

<%
strTekst = \"Hello world\"
%>
<!-- #include file=\"inc.asp\" -->

inc.asp:

<%
response.write strTekst
%>

Hvis ovenstående script outputter Hello world, når du kører main.asp fra din webserver, virker det...
Avatar billede teepee Nybegynder
22. februar 2001 - 11:53 #13
En include fil opfører sig fuldstændig som hvis det var en del af teksten i hovedsiden. Så hvis du kan lave en request i hovedssden, kan du lave fulstændig den samme i includen. Du skal blot spørge på same måde som du ville gøre på hovedsiden. Variable du benytter dig af kan så enten stå i hovedsiden, over includen, eller i includen.

Bare se det som flere stykker af samme side, der først samles og dernæst afvikles.
Avatar billede mystart Nybegynder
22. februar 2001 - 12:17 #14
teepee >> Det er netop det det ikke gør i ASP, det bliver kørt før alt andet, derfor læser den først variabler efter den har kørt include!!
lange >> Det jeg skal have lavet er ikke noget med enestående variabler de skal være i include file=\"\"
Ligesom det eksempel jeg skrev tidligere. Su du skal ikke sige suk til mig!!
Avatar billede lange Nybegynder
22. februar 2001 - 12:25 #15
Ok, hvis det _skal_ være som du skriver i spørgsmålet, kan det ikke lade sig gøre.

Og angående afvikling osv, så opfører SSI-includes og ASP nøjagtigt som teepee skriver (\"se det som flere stykker af samme side, der først samles og dernæst afvikles\"). Der er ikke tale om, at indholdet af include-files parses før resten af filerne, hvilket du også vil kunne indse, hvis du afprøver mit main.asp/inc.asp-eksempel.
Avatar billede mystart Nybegynder
22. februar 2001 - 12:40 #16
Det siger alle de prof. udviklere jeg har snakket med!!
Og dettet site er amatøragtigt, hurtige svar, men så kan man sq heller ikke få svar på ens spørgsmål...
Netcoders styrer for vildt...
Prof. udviklere sidder ved deres tastatur...
Ikke hurtige svar, men effektive!!
ASP er sq noget lort, hvis man ikke kan lave det jeg vil stinker det sq, så holder jeg mig sq til php!!
Avatar billede mystart Nybegynder
22. februar 2001 - 12:41 #17
Og dettet site er amatøragtigt, hurtige svar, men så kan man sq heller ikke få svar på ens spørgsmål... = Og dette site er amatøragtigt, hurtige svar, men så kan man sq heller ikke få ordentlige svar på ens spørgsmål...
Avatar billede teepee Nybegynder
22. februar 2001 - 12:52 #18
Kan du ikke bare gøre som vi siger og så er jeg sq ligeglad med hvad din far har fortalt dig. Prøv at lave siden og så ser du at det virker.
Avatar billede lange Nybegynder
22. februar 2001 - 12:53 #19
Du får lige et \"Suk\" til...

Hvor mange af de personer, der har svaret her, er ikke professionelle udviklere? Er det overhovedet noget du kan udtale dig om?

Og jo, du fik svar på dit spørgsmål 54 sekunder efter du oprettede det. Svaret var endda korrekt (\"Du kan slet ikke gøre det\"). Der ud over har du fået en god bunke forslag til alternativer.

Og du skal da have lov til at holde dig til php, men jeg gad egentligt godt vide, hvordan du egentligt løser dit problem i php?
Avatar billede teepee Nybegynder
22. februar 2001 - 12:55 #20
Personligt får jeg omkring 600 i timen :-)
Men dertil skal det måske lige siges at jeg er Oracle udvikler og ikke ASP haj
Avatar billede teepee Nybegynder
22. februar 2001 - 12:57 #21
Og under alle omstændigheder forsøger vi jo blot at gøre dig en gratis tjeneste og så kan du jo bare lade være med at tage i mod den. Derfor behøver du jo ikke at blive barnlig og stå og puste dig op.
Avatar billede mystart Nybegynder
22. februar 2001 - 13:40 #22
Det er da nemt i php:
include(\"file.php?var1=$noget\");

Hvor $noget er en varibel!!
Avatar billede lange Nybegynder
22. februar 2001 - 14:02 #23
Interessant at den metode, du foreslår, netop ikke fungerer i PHP, da den vil lede efter en fil lokalt med navnet \'file.php?var1=$noget\' :

Fra www.php.net/manual/en/function.include.php:
\"/* Won\'t work; looks for a file named \'file.php?varone=1&vartwo=2\'
* on the local filesystem. */
include (\"file.php?varone=1&vartwo=2\");\"

Derimod kan du gøre det med fx http://host/file.php?var=$noget, da den så kører gennem http og dermed gennem php-fortolkeren. Den samme metode kan du anvende i ASP via objektet ASPhttp eller ASPexec (mener jeg).

Så nej, ASP er ikke fra barnsben født med muligheden og ja, det burde det måske være. Om det så er sproget eller den programmør, der ikke magter at anvende sproget korrekt, der er dårlig - tja, det vil jeg lade være op til folk selv at vurdere...
Avatar billede mystart Nybegynder
23. februar 2001 - 09:06 #24
Hmm, synes jeg at jeg har gjort og at det virker?!
Men det er ligemeget nu!!
Hvor kan jeg finde en online manual man kan søge i??
Avatar billede lange Nybegynder
23. februar 2001 - 09:11 #25
En søgbar manual kan du vist finde på http://msdn.microsoft.com - en overskuelig ASP/VBScript reference kan du finde på www.asp.dk/docs/vbscript/vbstoc.htm
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