Normalt vil jeg i ASP bruge min <%=request.form("felt1")%> hvis jeg er på page2.asp og skal hente felt1 fra min formular på page1.asp jeg lige har submittet.
Men hvordan forholder det sig i javascript?
Helt konkret skal jeg i mit javascript indlæse en variabel fra en formular (forrige side) som hedder antal, som jeg senere skal anvende i mit javascript. Min test-kode ser pt. sådan ud (har ingen konkret anvendelsesform, det er bare til at teste):
<script type="text/javascript"> antal = 4; for (i = 0; i <= antal; i++) { alert("Vi er pt. ved nummer " + i) } </script>
Som sagt ville jeg i min ASP Clasic have gjort følgende...
<script type="text/javascript"> antal = <%=request("antal")%>; for (i = 0; i <= antal; i++) { alert("Vi er pt. ved nummer " + i) } </script>
... Men nu står jeg overfor en udfordring hvor jeg skal have det til at spille sammen med nogen statiske HTML sider, så jeg har ikke mulighed for at bruge ASP.
Tror du misforstår mig, eller så har jeg udtrykt mig forkert.
Det er netop sådan jeg gør nu, bruger ASP script. Men hvad hvis jeg er på en statisk side, hvor jeg er tvunget til at bruge javascript. Hvordan overfører jeg variabler fra den tidligere side?
I dette tilfælde "antal" som kunne komme fra en <input type="text" name="antal">
Du kan ikke submitte en form uden at den er inde og vende om serveren.
Du kan selvfølgelig sende til en anden html-side (i stedet for en ASP/PHP). Dette skulle i givet fald gøres som method=GET, men jeg har ingen anelse om hvordan at du så ville få fat i variablene oppe fra adresselinjen.
location.search indeholder query-strengen - incl. '?'. Derfor kan vi i dokumentet, der submittes imod skrive:
<script type="text/JavaScript"> window.onload = function() { var a, vars=[], s = location.search? location.search.substr(1) : false; if (!s) return; a = s.split("&"); for (var i=0; i<a.length; i++) { a[i] = a[i].split("="); if (a[i].length>1) vars[a[i][0]] = a[i][1]; }
// Nu ligger alle GET-variabler i det associative array 'vars' // Prøv f.eks. at alert'e alle GET-vars og deres værdier: for (x in vars) alert(x+" => "+vars[x]) } </script>
Du kunne også i head-sektionen af dit dokument skrive:
<script type="text/JavaScript"> var JS_GET = []; var a, s = location.search? location.search.substr(1) : false; if (s) { a = s.split("&"); for (var i=0; i<a.length; i++) { a[i] = a[i].split("="); if (a[i].length>1) JS_GET[a[i][0]] = a[i][1]; } } </script>
- hvorefter alle GET-variabler er tilgængelige i resten af dokumentet i array'et 'JS_GET': alert( JS_GET["noget"] ); // Hvis der er en variabel med navnet 'noget' :)
- hvilket enhver PHP'er i hvert fald vil kunne nikke genkendende til ;o)
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.