[ASP] Variabele Include File

Pagina: 1
Acties:

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Hoi,
Ik zit met een vervelend en mischien wel een uitdagend probleem.

Ik wil graag een file includen met functies en variablen die ik in mijn script wil gaan gebruiken. Nu is het zo dat ik letterlijk cases moet gaan programmeren. Iemand logt ergens in en selecteerd een oefening waar iemand mee bezig is. (dat werkt allemaal prima) en nu wil ik aan de hand van die selectie kiezen welke include file hij moet pakken.

Nu heb ik geprobeerd om de include regel te responsen maar dan parsed hij hem niet en verschijnd de regel gewoon in mijn broncode, en word de file dus niet geinclude helaas.
code:
1
2
3
4
5
<%
Dim cCase
cCase = Request.Cookies("Case") 
Response.Write "<!-- #INCLUDE FILE=""../includes/util" & cCase & ".asp"" -->"
%>

Dit werkt dus niet (op verschillende plaatsen geprobeerd)
Ik heb het ook al met een constructie als het onderstaande geprobeerd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%
Dim cCase
cCase = Request.Cookies("Case")
Select Case cCase

Case "1"
%>
<!-- #INCLUDE FILE="../includes/util1.asp" -->
<%
Case "2"
%>
<!-- #INCLUDE FILE="../includes/util2.asp" -->
<%
End Select
%>

dit werkt dus ook niet...
Nu is mijn vraag... Kan ik uberhaupt wel een variable include maken of is het nog op een andere manier op te lossen?

alvast bedankt!

Handig 2 modjes actief tegelijk :P

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • SH007
  • Registratie: November 2001
  • Niet online
dubbel: [topic=415369]
nu is die andere dicht

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 19:26
dit werkt idd niet zo, want een include wordt altijd geinclude vOOrdat de ASP geparsed wordt.
Wat je natuurlijk kan doen is de inhoud van beide includes in EEn include zetten, maar dan allebei in een aparte functie en dan bij situatie 1 de ene functie aanroepen en bij de andere situatie de andere functie.

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Je kunt werken met:
code:
1
2
3
4
5
6
7
8
9
10
11
<%
If Request.Cookies("Case")="1" Then
%>
<!-- #INCLUDE FILE="../includes/util1.asp" -->
<%
ElseIf Request.Cookies("Case")="2"  Then
%>
<!-- #INCLUDE FILE="../includes/util2.asp" -->
<%
End If
%>

Alleen moet je even opletten met dubbele variabelenamen definieren in combinatie met Option Explicit.

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
het probleem is alleen dat ik straks verschillende acties per include file moet gaan maken en zo'n 30 cases dus dat word dan een mega include file. Lijkt me niet de beste oplossing.

Ik zat te denken dat het mischien wel met javascript kon ofzo :?

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Op maandag 18 februari 2002 17:27 schreef Nazgul het volgende:
Je kunt werken met:
code:
1
2
3
4
5
6
7
8
9
10
11
<%
If Request.Cookies("Case")="1" Then
%>
<!-- #INCLUDE FILE="../includes/util1.asp" -->
<%
ElseIf Request.Cookies("Case")="2"  Then
%>
<!-- #INCLUDE FILE="../includes/util2.asp" -->
<%
End If
%>

Alleen moet je even opletten met dubbele variabelenamen definieren in combinatie met Option Explicit.
Dit werkt dus niet aangezien hij dan alle <!-- #INCLUDE FILE="../includes/util2.asp" --> meteen als "comments" interpeteerd ik heb namelijk precies hetzelfde geprobeerd met mijn select case

(zie eerste reactie)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Sorry had de vraag verkeerd gelezen.

Het dynamisch includen van ASP pagina's is in ASP 2.0 niet te doen.
In ASP 3.0 (Vanaf IIS 5) is dit opgelost met behulp van Server.Execute en Server.Transfer.

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 19:26
Op maandag 18 februari 2002 17:32 schreef 4of9 het volgende:
het probleem is alleen dat ik straks verschillende acties per include file moet gaan maken en zo'n 30 cases dus dat word dan een mega include file. Lijkt me niet de beste oplossing.
wat is er mis met een grote include file? desnoods splits je em in 3 stukken en include je gewoon 3 files in plaats van een.

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Op maandag 18 februari 2002 17:42 schreef Tampie2000 het volgende:

[..]

wat is er mis met een grote include file? desnoods splits je em in 3 stukken en include je gewoon 3 files in plaats van een.
Server.Transver en Server.execute?

Hmm even kijken of ik daar iets over kan vinden. (heb je eventueel een linkje voor mij?)

Thx alvast

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
hmm ik lees nu al dat Server.Transfer alleen maar een vervanging is voor Response.Redirect...

ook niet echt wat ik zoek eigenlijk...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Wat je wil kan niet.

Je zou wel de variabele data in iets anders op kunnen slaan (in een database of xml file) en dan toekennen.

Dan krijg je dus een rijtje
jouwvar = recordset("jouwvar")
of
jouwvar = xmlfile.selectsinglenode("jouwvar").text

waarbij de source van rs of xml dus variabel is.

ofzo

  • Nibble
  • Registratie: Juli 2001
  • Laatst online: 09-09 09:06
Was dat niet "Include Virtual" :?

T is for TANK, and T is for TERROR ... and K is the K for KILLING in error.


  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Op maandag 18 februari 2002 18:13 schreef 4of9 het volgende:
hmm ik lees nu al dat Server.Transfer alleen maar een vervanging is voor Response.Redirect...

ook niet echt wat ik zoek eigenlijk...
Klopt. Een Server.Transfer lijkt op een redirect, met de uitzondering, dat je in dezelfde context blijft. (Je kunt gewoon je 'oude' variabelen gebruiken)

Wat jij zoekt is Server.Execute. Dit is een dynamische include. (Zelfde context verhaal als hierboven, alleen komt deze na afsluiting van de include file wel weer terug)

Er zijn op de MSDN site wel een paar goede voorbeeldjes te vinden.

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Op maandag 18 februari 2002 18:25 schreef Nibble het volgende:
Was dat niet "Include Virtual" :?
Nope die werkt ook niet (werkt hetzelfde als een gewone include).

Server.Execute heb ik weleens vaker als oplossing gezien, maar dat kun je toch niet gebruiken zoals een gewone include? (dus dat je daarin een functie zet die je aanroept in je asp pagina).

Exact expert nodig?


  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Ik kwam dit tegen:
One drawback to Server.Execute is that it can't call a particular procedure on the included page. Server.Execute starts running code at the top of the executed page and continues running the code until the executed page ends, at which point it returns to the original page. Another potential drawback with Server.Execute is that any page-scope variables are not shared between the original page and the executed page. With server-side includes this isn't an issue because the include file code is incorporated into the original page before it is executed. Regardless, there are many situations where using Server.Execute is a better choice than using server-side includes.
Ik ben dus bang dat je gewoon een grote #include moet doen en dan de verschillende functies aan moet gaan roepen.

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


Verwijderd

Server.Transfer en ook .Execute hebben weinig te maken met "include".

Bij .Transfer ga je vanaf dat punt het aangeroepen bestand uitvoeren. Bij .Execute kom je ook weer terug. Dus:
code:
1
2
3
Response.Write('test1<br/>');
Server.Transfer('test2.asp');
Response.Write('test2');

zal dus nooit test2 printen.

Enne, de context wordt niet meegenomen. Als je waardes mee wilt geven, zul je dat moeten doen via de Sessie of zo...

Verwijderd

Waarom kan je niet altijd alle include files includen? Of denk ik nu te sim-pel :?

Je kan trouwens ook een dll backen met voor elke case een aparte classe. Dan kan je afhankelijk van de keuze een object van een andere klasse aanmaken...

  • Excrusiator
  • Registratie: Juli 2000
  • Laatst online: 18-02 20:19

Excrusiator

Say wha?

<%Select Case Request("option")
Case 0%>
<!-- #INCLUDE FILE="hobby/main.html" -->
<%Case 1%>
<!-- #INCLUDE FILE="hobby/computers.asp" -->
<%Case Else%>
<!-- #INCLUDE FILE="hobby/main.html" -->
<%End Select%>

Deze code gebruikte ik op mijn oude asp website om pagina''s dynamisch te includen. Ik gebruikte hiervoor de url van mijn website. bijvoorbeeld: www.mijnwebsite.nl/index.asp?option=1
Dan selecteerd hij case 1.

Misschien dat je hier wat aan hebt, ben zelf al te lang niet meer bezig met asp om je een min of meer werkende code voor te schotelen. ;)

<HunterPro> HAL: is Excru intelligent?
<HAL> HunterPro: Hijs weer lekker intelligent.
* Excru aait HAL


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Ik zal proberen uit te leggen wat de bedoeling is...

Er zijn een stel (neem voor het gemak 50) statische pagina's die een Applicatie nabootsen.

Nu om cursussen te geven moeten Cases door lopen worden.

Nu wil ik per case aparte acties uitvoeren in dezelfde schermen/pagina's en ik wil dus die statische pagina's gaan her gebruiken.

Ik weet het is wat omslachtig maar het kan echt even niet anders dan zo.

Ik dacht dus aan variable includes... maar mischien word het toch dat XML voorbeeld.

Ik ga weer even puzzelen. En alle ideeen blijven welkom natuurlijk. :)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Het gebruik van dynamische includes is over algemeen niet handig en werkt niet lekker, met name wat betreft het debuggen kan het nogal wat problemen opleveren, in principe kan je beter met verschillende roots werken voor verschillende gebruikers groepen als je al echt met verschillende fysieke files wilt werken. Overmatig gebruik van includes is gewoon niet handig.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Op maandag 18 februari 2002 21:19 schreef Excrusiator het volgende:
Deze code gebruikte ik op mijn oude asp website om pagina''s dynamisch te includen. Ik gebruikte hiervoor de url van mijn website.
Is niet echt dynamisch hoor. Eerst worden alle files die je include ingevoegt in je asp pagina, en daarna wordt deze pas uitgevoerd. Oftewel, je include altijd al je files, alleen door de select case wordt er 1 daadwerkelijk getoont/uitgevoerd. En dat is nou juist het probleem, de topicstarter zoekt een manier om ook maar echt 1 file te includen, i.p.v. allemaal.

Exact expert nodig?


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op maandag 18 februari 2002 21:26 schreef 4of9 het volgende:
Ik dacht dus aan variable includes... maar mischien word het toch dat XML voorbeeld.
Ja, das erg makkelijk, je maakt een xml-formaatje, maakt daar 50 pagina's mee, dan transformeer je het zaakje (met een simpel scriptje en XSLT) naar XHTML en klaar is 4of9, 50 pagina's met dezelfde layout.

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 19:26
volgens mij is één include met meerdere functies makkelijker....... :)

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
ik weet dat het een wat omslachtige manier is maar helaas is het nu echt even de beste oplossing :'(

Ik denk dat het toch maar een aparte root per Case gaat worden helaas, die includes leek me wel makkelijk...

Ik blijf zoeken :)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Op dinsdag 19 februari 2002 10:58 schreef 4of9 het volgende:
Ik blijf zoeken :)
Volgens mij moet je een stapje terug doen en alles omgooien.. dit blijft k*t :)

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Op www.4guysfromrolla.com staan goede adviesen met betrekking tot het gebruik van includes

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
mischien zijn er nog andere mogelijk heden (Clientside scripts etc?)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...

Pagina: 1