Hej! Det ser riktigt ut, på vilket sätt fungerar det inte? Förresten, du kan inte ha med den första kommentaren, sidan ska ENBART innehålla detta: Tack för snabbt svar! Lite mer detaljer: Testa att ändra till detta: Orsaken är att jag ville ha ett "default" värde på variabeln ifall en användare kom till sidan direkt utan att gå via sitens första sida där man väljer språk (vilket alltså är vad jag använder lang_pref till).Förnya session variable utan att lämna sidan
Jag försöker komma på ngt sätt att ändra värdet på en session variabel och sedan ladda om den sida användaren befinner sig på. Jag vill använda det för att användarna skall kunna ändra språk, vilket styrs av en sessions variabel. Jag har provat nedan tips som jag fick från macromedias forum men får det inte att fungera. Ryvärr kan jag för lite än för att kunna klura ut varför. Tips och råd mottages gärna!
/Hannes
QUOTE******************
I would make a separate page ( set_svLange.asp ) and it should have this code
<%@LANGUAGE="VBSCRIPT"%>
<%
If Request("qsLang") <> "" then
Session("svLang") = Request("qsLang")
End If
Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
%>
The image should have a link set_svLange.asp?qsLang=aValue
UNQUOTE*******************Sv: Förnya session variable utan att lämna sidan
<code>
<%@LANGUAGE="VBSCRIPT"%>
<%
If Request("qsLang") <> "" then
Session("svLang") = Request("qsLang")
End If
Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
%>
</code>
/JohanSv: Förnya session variable utan att lämna sidan
Det som inte fungerar är helt enkelt att sessions variablen inte ändras. Jag kommer tillbaka till samma sida med samma värde på variabeln. Jag förstår inte varför eftersom koden verkar ganska enkel och tydlig. Men något är det.
/HannesSv: Förnya session variable utan att lämna sidan
Sidan som skall ändra sessionsvariabeln har följande kod:
<%
If Request("qslang_pref") <> "" then
Session("lang_pref") = Request("qslang_pref")
End if
Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
%>
Själva sidan som skall laddas om och som innehåller länk till den ovan har följande kod:
<% if Request.QueryString("lang_pref") = "" then
Session("lang_pref") = "en"
else
Session("lang_pref") = Request.QueryString("lang_pref")
end if
%>
Länken ser ut på fäljande vis:
<area shape="rect" coords="710,53,730,69" href="setlang.asp?qslang_pref=fr">
<area shape="rect" coords="733,53,753,68" href="setlang.asp?qslang_pref=sv">
/HannesSv: Förnya session variable utan att lämna sidan
<%
If Len(Request("qslang_pref")) > 0 then
Session("lang_pref") = Request("qslang_pref")
End if
Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
%>
>Själva sidan som skall laddas om och som innehåller länk till
>den ovan har följande kod:
><% if Request.QueryString("lang_pref") = "" then
>Session("lang_pref") = "en"
>else
>Session("lang_pref") = Request.QueryString("lang_pref")
>end if
>%>
Varför sätter du variabeln i denna sidan också? Finns ju en risk att du ändrar tillbaka om den sidan innehåller ett argument eftersom HTTP_REFERER även tar med argumenten (har jag för mig).
/JohanSv: Förnya session variable utan att lämna sidan
Kanske finns det något smartare sätt att göra det dock.
Lite bakgrund:
Sida 1: Använaren får välja språk och slussas vidare till sida 2
Sida 2: Värdet från sidan 1 lagras som sessions variabel "lang_pref" och den används sedan på sidan för att välja vilka data som skall visas på skärmen.
Sida 3 (setlang.asp): skall sedan användas för att en anvädare som befinner sig på sida 2 skall kunna ändra språk "on-the-fly".
Dessvärre är jag inte så duktig vare sig på ASP eller VBscript utan sidan det blir lite lapptäcke med förslag från det ena eller andra hållet. Man lär sig ju dock medan man håller på men ibland blir det en del missar...
/Hannes