Just nu i M3-nätverket
Jump to content

Fältdata som variabel


joros

Recommended Posts

Jobbar med ett något större system där allt som visas på sidan skrivs ut med fördefinierade variabler då sidan kan användas på olika språk.

 

Variabeln för att skriva ut t.ex Bli medlem heter str_3057. Håller på att bygga en liten lösning där jag behöver spara namnen på variablerna i en databas som sedan ska presenteras i en översikt.

 

Det är ju inga problem att skriva ut variabelsträngen från databasen. Men, går det att göra det så att den inte skriver ut själva strängen utan läser av det som en variabel?

 

Istället för att skriva ut str_3057 ska det skrivas exempelvis <%=str_3057%> så det i detta fall står Bli medlem.

 

Link to comment
Share on other sites

Hej,

 

Är det något sånt här du tänker på?

 

Dim str_3057

str_3057 = "Response.Write ""Bli medlem"""

Execute(str_3057) 

 

/PJ

 

[inlägget ändrat 2008-11-18 15:05:09 av Pedro]

Link to comment
Share on other sites

Jag brukar annars jobba med Scripting.Dictionaries

Men sätter en språkvariabel så här:

Set d = Server.CreateObject("Scripting.Dictionary")
d.Add("str_3057","Bli medlem")

 

om du har variabelnamnet i databasen då anropar du språkvariablens värde så här:

 

response.write d.item( RS("field") )

där RS("field") är fältet i databasen.

 

 

Språkvariablarna har du med fördel i en includefil.

Mer info här:

http://asp.codenewbie.com/articles/asp/1421/Scripting_Dictionary-Page_1.html

 

Link to comment
Share on other sites

Hmm...jo, det skulle kunna varit en variant. Men grejen är ju det att jag då får använda mig av X antal olika Scripting.Dicts för varje språk. Men tanke var något åt följande håll som inte verkar fungera.

 

Dim str_register
Set str_register=Server.CreateObject("Scripting.Dictionary")
str_register.Add "str1_1","<%=str1_1%>"

 

Det går ju inte att ha <% %> i befintlig kod. Men för att enklare visa tanken.

 

Följt av:

 

Response.Write str_register.item( testSQL("rubrik") )

[inlägget ändrat 2008-11-19 08:19:17 av joros]

Link to comment
Share on other sites

Följande har jag provat med nu vilket inte ger något. :-(

 

Dim str_register
Set str_register=Server.CreateObject("Scripting.Dictionary")
str_register.Add "str1_1",str1_1

Set testSQL = Connect.Execute("SELECT rubrik FROM Users_favoriter WHERE anvid = 2 AND rubrik = 'str1_1' ORDER BY avd_sort")

Do While Not testSQL.EOF
rubrikStr = testSQL("rubrik")

Response.Write str_register.Item(rubrikStr)

testSQL.MoveNext
Loop

testSQL.Close
Set testSQL = Nothing

 

Har även kontrollerat att variablen rubrikStr innehåller ett giltigt värde.

 

Link to comment
Share on other sites

str_register.Add "str1_1",str1_1

 

Men har du tilldelat variabeln str1_1 något?

Det kanske rentutav skall vara en sträng?

 

 

str_register.Add "str1_1",[color="#ff0000"]"str1_1"[/color]

 

 

Link to comment
Share on other sites

Men grejen är ju det att jag då får använda mig av X antal olika Scripting.Dicts för varje språk.

 

Ja, i min språk-includefil kontrollerar jag vilket skråk som körs och tilldelar variablarna olika språk

 

<%
SELECT CASE current_language
CASE "", "SE" ' Svenska är default
d.add "var_language","Språk"
d.add "var_closewindow","Stäng fönster"
CASE "NO"
d.add "var_language","Språk"
d.add "var_closewindow","Luk vindue"

CASE "EN"
d.add "var_language","Langage"
d.add "var_closewindow","Close window"

END SELECT
%>

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...