Inkludera olika filer med konstanter

ASP

6 svar · 227 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Trådstart#1

Jag ska beroende på vilket språkval som skickas med i en querystring inkludera olika konstanta variablar. De har jag i filer som heter tex.

CaptionstringSE.asp
CaptionstringGB.asp

De innehåller samma konstanter (samma namn) fast med olika värden i vad de har för information beroende på vilket språk det är.

Tänkte ta ut rätt genom

<%
Dim LangID
LangId = Request.Querystring("LangID"9
If LangID = "se" Then
%>
<!--#include file='/se/captionstrings.asp' -->
<%ElseIf LangID = "gb" Then %>
<!--#include file='/gb/captionstrings.asp' -->
<%End If%>

Men det fungerar ju inte eftersom includesen läses in först innan ifsattserna och de innehåller samma namn på konstanterna så man får
Name Redifined felmeddelande.

Om jag istället lägger if sattserna och alla konstanter i en och samma include borde man väll kunna få det att fungera kanske. Men det vill jag undvika eftersom jag vill inte blanda ihop språkspecifikasidor med icke språkspecifika. Men finns det inget annat sätt, någon som har löst liknande problem på ett smart sätt

Tacksam

Medlem sedan dec. 200012 464 inlägg
#2

Kan du använda

server.execute("filnamm")

?

Kräver ASP 3.0 dock.

Medlem sedan dec. 19996 522 inlägg
#3

Jag har en produkt sida som hämtar data från en sqlserver. Sen för att slippa dubletter gör jag bara en fil och tar ut spårket på dvs texter etc genom en querystring med landsvärdet i.

Sen skriver jag ut massa tabeller med produktfakta och konstanta variablarna är de olika rubrikerna i kollummer, olika för vilket språk jag väljer att hämta ifrån.

Om jag tar server execute fungerar det inte eftersom jag inte får in konstanterna.

Medlem sedan dec. 19996 522 inlägg
#4

Det måste ju gå att lösa på något sätt, det fungerar ju inte heller om jag lägger if sattserna i includfilen, för konstanterna orsakar ju ändå felmedelandet "Name redefined".

Vad finns det för andra sätt som man kan lösa detta på, kommer inte på några själv idag typ förutom att lägga dem i en databas oxå å hämta ut det som den andra informationen

Medlem sedan dec. 19996 522 inlägg
#5

Server.Execute fungerar inte, jag får inga värden i konstanterna.

En lösning skulle ju vara och döpa om konstanterna och skriva typ så här

LangId = Request.Querystring("LangId") 
If LangId = "gb" Then
Const RubrikGB = "Hello"
Const Rubrik2GB = "Hello again"
ElseIf LangId = "se" Then
Const RubrikSE = "Hello"
Const Rubrik2SE = "Hello again"
End If

och sen på produkt sidan få fram konstanterna genom att typ skriva nått sånnt här
<%=Rubrik"& LangID &"%>

hur skulle jag skriva en sådan ? fast ändå det är en osmidig lösning

Medlem sedan jan. 20001 372 inlägg
#6

en tanke som slog mig var att du kanske definerar dina grejer i varje includefil.

testa att definera dem på sidan som filerna includeras på.

vet ju ej om det fungerar men det är värt ett försök ;)

Medlem sedan dec. 19996 522 inlägg
#7

jo det är ju därför jag får "redifned named". Sket i konstanter å gjorde dem till vanliga variabler.

Hur kan man göra dem till konstanter egentligen ?

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)