Avatar billede cypherdenmark Nybegynder
21. maj 2003 - 19:11 Der er 9 kommentarer og
1 løsning

Session variabel fra ASP til JavaScript

Hej Alle

Jeg har en session variabel der hedder:
Session("language")

Hvordan kan jeg få fat i den i en JS fil.

På forhånd tak..... :-)
Avatar billede grunken Nybegynder
21. maj 2003 - 19:17 #1
overfør den til en variabel du kan bruge i dit js dokument ;)

<script language="javascript">
  var noget = <%=request.session("language")%>;
</script>

og så må du jo pille lidt i din JS, så den kan hente informationen fra noget :)
Avatar billede cypherdenmark Nybegynder
21. maj 2003 - 19:23 #2
ahh ok.....

men hvordan ligger jeg den så til sammen med noget andet. f.eks.

url1_0 = "kontakt.asp?HER KOMME MIN SESSION VARIABEL"
Avatar billede -master-d- Nybegynder
21. maj 2003 - 20:16 #3
Sådan her :

<script language="javascript">
  var url1_0 = <%="kontakt.asp?" &session("language")%>;
</script>
Avatar billede cypherdenmark Nybegynder
21. maj 2003 - 21:45 #4
hmm det virker desværre ikke....

Min js fil er en ældre udgave fra opencube (http://www.opencube.com/prod_wedhtml.html) som er et menusystem.

I menu systemet kan man angive sin url til nogle menupunkter f.eks.

url1_0 = "kontakt.asp"

Men da siden jeg er ved at lave skal være på forskellige sprog skal linket ændre sig, altså:

dansk:
url1_0 = "kontakt.asp?language=dk"

engelsk:
url1_0 = "kontakt.asp?language=uk"

osv....

Derfor skal jeg på en eller anden måde have fat i session variablen, Request.QueryString("language") i min js fil

på forhånd tak :-)
Avatar billede cypherdenmark Nybegynder
21. maj 2003 - 21:46 #5
lige en lille ændring:

Derfor skal jeg på en eller anden måde have fat i session variablen eller på Request.QueryString("language") i min js fil
Avatar billede edutasia Nybegynder
22. maj 2003 - 10:09 #6
Prøv med:

  var url1_0 = 'kontakt.asp?language=<%=session("language")%>';

Men hvis du i forvejen har en Session-variabel, der hedder "language", hvorfor så sende den med rundt i menusystemets url'er? Kan du ikke bare f.eks. på siden kontakt.asp læse Session("language") i stedet for Request.QueryString("language")?
Avatar billede cypherdenmark Nybegynder
22. maj 2003 - 14:19 #7
edutasia>> Ej hvor er jeg bare glad....Det virkede sku....Du har reddet min dag...

Men hvad betyder det tegn (') du har indsat og hvorfor ?

Tusind tak for hjælpen......
Avatar billede edutasia Nybegynder
22. maj 2003 - 14:54 #8
Tegnet ' har samme funktion som tegnet ". Det bruges til at afgrænse en streng. Hvis du i JavaScript definerer en variabel som

  var myVar = dk;

så får du en scriptfejl, fordi dk er en streng. Der skal altså stå

  var myVar = 'dk';

eller

  var myVar = "dk";

i stedet. Du kan derimod godt skrive:

  var myVar = 23;

fordi 23 er et tal, som ikke skal afgrænses med ' eller ".

Når man blander HTML, ASP og JavaScript, har man som regel brug for flere typer afgrænsere for ikke at mikse koden totalt sammen. Hvis du f.eks. skal lave en event-handler på et billede, skriver du:

  <img src="filnavn.gif" onclick="goTo('side.htm')">

onclick-attributten er afgrænset af "", men JavaScript-funktionen goTo() skal i dette tilfælde have tilsendt variablen 'side.htm', der OGSÅ skal afgrænses. Det gøres så med '' for ikke at blande det hele sammen. Følgende vil nemlig ikke virke:

  <img src="filnavn.gif" onclick="goTo("side.htm")">

Jeg har personligt valgt at bruge ' i JavaScript og " i HTML. Men det er bare mit valg, og andre gør det modsatte. Man kan i mange tilfælde også escape tegnene, dvs. skrive \" eller \' i stedet for " eller ' med samme effekt.

I dit tilfælde er tegnet ' faktisk ikke engang det afgørende for løsningen. Følgende vil således også virke:

  var url1_0 = "kontakt.asp?language=<%=session("language")%>";

Jeg synes bare, at det vanskeligere at se, hvad der er hvad, når der kun bruges ", og derfor satte jeg ' ind i stedet.

Tak for point :)
Avatar billede edutasia Nybegynder
22. maj 2003 - 15:07 #9
Bare for god ordens skyld, så var fejlene i dit tilfælde helt præcist, at der 1. manglede strengen "language=" og at der 2. manglede afgrænsere i din variabelerklæring. Følgende kode:

  var url1_0 = <%="kontakt.asp?" &session("language")%>;

gav følgende (forkerte) udskrift:

  var url1_0 = kontakt.asp?dk;

Ved at sætte "language=" ind og tilføje afgrænsere ('), blev udskriften til:

  var url1_0 = 'kontakt.asp?language=dk';

og så virkede det :oD
Avatar billede cypherdenmark Nybegynder
22. maj 2003 - 16:07 #10
Super cool forklaring....Takker...

Ha en god dag :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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