Avatar billede hobbez Nybegynder
05. juni 2004 - 13:39 Der er 20 kommentarer og
2 løsninger

Variabel i include - eller noget der dækker samme behov

I http://www.eksperten.dk/spm/505750 fik jeg koden til at lave en side der kan bladre mellem billeder i en mappe.

Nu vil jeg gerne inkludere en tekst under NOGLE af billederne.

Den umiddelbare løsning ville jo være at lave en <!--#include file="noget_tekst_billede_1.inc"-->

Men det er forskellige tekster for de forskellige billeder - og det er kun nogle af  billederne der HAR en tekst.

Så umiddelbart ville det nemme jo være at checke om der er en fil der skal inkluderes, og så lave en

<!--#include file="noget_tekst_billede_" & i & ".inc"-->

Men det kan man jo ikke, for man kan ikke lave variabler i en <!--#include file........... ---> ting.

Jeg vil helst undgå at lave noget database-noget, hvis jeg kan.

Nogen der har nogen gode forslag til, hvad jeg kan gøre i stedet?

/Rob
Avatar billede thesurfer Nybegynder
05. juni 2004 - 13:50 #1
Select Case.

<%
Select Case i
case 1
%>
<!--#include file="noget_tekst_billede_1.inc"-->
<%
case 2
%>
<!--#include file="noget_tekst_billede_2.inc"-->
<%
'osv...

case else
response.write "der skal ikke inkluderes noget"

end select
%>
Avatar billede tubber Juniormester
05. juni 2004 - 13:50 #2
<!--#include file="noget_tekst_billede_"<%=i%>".inc"-->

Noget i den retning måske ?
Avatar billede tubber Juniormester
05. juni 2004 - 13:52 #3
Response.Write("<!--#include file="noget_tekst_billede_" & i & ".inc"-->")

Et andet forslag, har desværrer ikke lige mulighed for at teste det lige her og nu :(
Avatar billede thesurfer Nybegynder
05. juni 2004 - 13:53 #4
tubber> Nej, man kan ikke putte noget som helst kode (hverken asp, php, javascript, html, osv) i en #include..
Avatar billede thesurfer Nybegynder
05. juni 2004 - 13:54 #5
og antallet af " tegnene er forkert :-)
Når der der skal udskrives et " tegn, skal man enten skrives """" eller chr(34)..
Avatar billede hobbez Nybegynder
05. juni 2004 - 14:00 #6
thesurfer: Din kode betyder at jeg skal have en CASE for hvert billede. Hvis jeg ender med 200 billeder, så skal jeg lave CASE 200 gange. Det gider jeg ikke :o)

tubber: Som thesurfer skriver: Det kan man ikke.

/Rob
Avatar billede thesurfer Nybegynder
05. juni 2004 - 14:09 #7
hmm.. har du adgang til FSO..? :-)

Hvis ja, her er en teori du kan tænke over..

skriv følgende til en fil (f.eks. minfil.inc): "<!--#include file=""noget_tekst_billede_" & i & ".inc"" -->"

Så kan du altid bruge:
<!-- #include file="minfil.inc" -->


Men det kræver at du har skriverettigheder..
Avatar billede thesurfer Nybegynder
05. juni 2004 - 14:11 #8
Avatar billede kimovitch Nybegynder
05. juni 2004 - 14:32 #9
Hvis billederne har fortløbende numre, kan du nøjes med én includefil, hvori du har alle tekster i et array, hvor størrelsen matcher antallet af billeder:

billedtekst(1) = "Tekst til billede 1"
billedtekst(2) = "" ' der er ikke noget tekst til billede 2
osv...

Der hvor du viser billederne kan du hente teksterne:
<img src='<% naeste_nr %>.jpg'><br>
<% = billedtekst(naeste_nr) %>

-Kim
Avatar billede kimovitch Nybegynder
05. juni 2004 - 14:33 #10
Rettelse:
<img src='<% = naeste_nr %>.jpg'><br>
-Kim
Avatar billede thesurfer Nybegynder
05. juni 2004 - 14:54 #11
Hvordan ser noget_tekst_billede_1.inc egenligt ud?
Avatar billede dan_n Nybegynder
06. juni 2004 - 00:01 #12
Hvad med at benytte
server.Execute("noget_tekst_billede_" & i & ".inc")
Avatar billede kimovitch Nybegynder
06. juni 2004 - 01:15 #13
Hvis du helst vil have hver tekst i en fil for sig ville det være oplagt at bruge fileSystemObject når du nu alligevel er igang med det. Ligesom du har et objekt til alle billedfilerne kan du så oprette et objekt til alle teksterne (som du anbringer i en mappe for sig selv) og åbne den fil, der matcher (hvis den findes).

Hvis du sender den kode du bruger til billederne kan jeg godt lægge et forslag til hvordan koden til teksten kunne se ud.

-Kim
Avatar billede thesurfer Nybegynder
06. juni 2004 - 14:19 #14
Mht server.execute:
så ville jeg nok bruge en asp fil, i stedet for en inc fil..

Og du skal huske, at hvis du bruger server.execute, og vil flytte til et anden hotel, skal det være en Windows server, med asp.. Hvis det er en Linux server med Chilli!ASP, understøttes server.execute ikke (heller ikke server.transfer).
Avatar billede hobbez Nybegynder
06. juni 2004 - 22:35 #15
Det kører ChiliSoft - men jeg endte med at køre videre med forslaget fra KimOVitch.

Dog lavede jeg det således at den laver en løkke der først sætter billedtekst(i) = "" (fordi det er de færreste billeder der er tekster til), og derefter;

billedtekst(7) = "Her er der en billedtekst"
billedtekst(9) = "Her er der sørme også en billedtekst"
billedtekst(13) = "Endnu en billedtekst"

osv

for de billeder hvor der er en reel tekst.

KimOVitch og TheSurfer: Læg venligst et par svar, så I kan få nogen point :o)

/Rob
Avatar billede thesurfer Nybegynder
06. juni 2004 - 23:53 #16
OK :-)
Avatar billede kimovitch Nybegynder
07. juni 2004 - 07:01 #17
Yep :-)
Avatar billede hobbez Nybegynder
07. juni 2004 - 18:39 #18
Jeg tillod mig at fordoble point, så I begge kunne få 30. Det håber jeg er OK ;o)

/Rob
Avatar billede thesurfer Nybegynder
07. juni 2004 - 18:41 #19
Helt iorden :-)
Takker for points :-)
Avatar billede kimovitch Nybegynder
07. juni 2004 - 19:12 #20
Herligt ¦-)
-K
Avatar billede tubber Juniormester
23. juli 2004 - 11:20 #21
Vil den her kunne bruges i stedet for include ?

<% Server.Execute("contain/" & variabel & ".asp") %>

Rendte lige over den.....
Avatar billede thesurfer Nybegynder
23. juli 2004 - 15:04 #22
Ja, det skulle den gerne..
Men man skal lige huske på, at Server.Execute og Server.Transfer ikke virker med Chilli!ASP (ASP som køres på Linux, i stedet for Windows), da den endnu ikke understøttes..
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