Avatar billede natsprinter Nybegynder
18. november 2003 - 23:25 Der er 8 kommentarer og
1 løsning

Kan man hente en variabel ?

Lad os antage at jeg har følgende kode i et HTML dokument:

<a href="side2.htm?id=12">Hop til side 2</a>

Når jeg arbejder i ASP eller PHP er det jo ikke nogen sag at "snuppe" værdien af id i dokumentet side2, men jeg ønsker ikke at bruge ASP eller PHP til denne øvelse. Kan jeg ved hjælp af javascript få fat i den variabel, og så bruge den i dokumentet side2.htm.
Jeg syntes jeg har læst både her og der og alle vegne, så måske kan det bare ikke lade sig gøre ?????
Avatar billede olebole Juniormester
18. november 2003 - 23:47 #1
<ole>

<script type="text/JavaScript">
var id = false;
if ( location.href.indexOf("?id=")!=-1 ) {
    id = location.href.split("?id=")[1];
}
if ( id ) alert(id);
else alert("Intet id fundet");
</script>

/mvh
</bole>
Avatar billede skovenborg Nybegynder
18. november 2003 - 23:57 #2
du kan også bruge location.search til direkte at henvise til alt det bag ved spørgsmålstegnet (altså variablerne) - men ikke fordi det andet er forkert, bare et supplemment ;-)
Avatar billede natsprinter Nybegynder
19. november 2003 - 00:02 #3
Hej Olebole !
Jeg syntes ikke det virker helt. Jeg kan godt se at der kommer en besked hvis jeg bare åbner siden, "intet id fundet", men der kommer ikke noget når jeg sender en variabel afsted ???, Så skulle den jo poppe op og sige "23", hvis altså id=23.

Jeg er ikke så skrap til javascript, så du må meget gerne fortælle, hvad der sker i linie 3 og 4 ?

Natsprinter
Avatar billede olebole Juniormester
19. november 2003 - 00:11 #4
natsprinter >> Så laver du en fejl ... men det er jo ikke til at vide, hvilken  :)
Det virker helt fint
Avatar billede natsprinter Nybegynder
19. november 2003 - 00:17 #5
Hej Olebole
Det er jo helt pinligt, men ja, det virker. Jeg vil dog stadig gerne vide, hvad der sker i linie 3 og 4 ??
Avatar billede olebole Juniormester
19. november 2003 - 00:22 #6
;o)

location.href.indexOf("?id=") - returnerer et tal, der svarer til, hvor 'id=' står i strengen 'location.href', som er den URI, siden er kaldt med. Eksisterer 'id=' ikke, returneres '-1'

location.href.split("?id=") returnerer et array med to elementer: Det, der kommer før 'id=' - og det, der kommer efter.
split() svarer til split-funktionen i VBS og explode() i PHP
/mvh
Avatar billede natsprinter Nybegynder
19. november 2003 - 00:28 #7
Hvis så man sender flere variabler, skal de så alle ha en linie som location.href.indexOf("?id=")
ex. side2.htm?id=23,bredde=56,hojde=102,navn=abc.gif
location.href.indexOf("?id=")
location.href.indexOf("bredde=")
location.href.indexOf("hojde=")
location.href.indexOf("navn=")

p.s. Måske skulle jeg oprette et nyt spørgsmål :-)
Avatar billede olebole Juniormester
19. november 2003 - 00:42 #8
Alt efter, hvordan det skal bruges, kan man vel skrive noget à la:

<script type="text/JavaScript">
var args = false;
var loc = unescape( location.href );

if ( loc.indexOf("?")!=-1 ) {
    var q = loc.split("?")[1];
    args = q.split("&");
}

if ( args ) {
    var a;
    for ( i=0; i<args.length; i++ ) {
        a = args[i].split("=");
        alert( a[0] + " = " + a[1] )
    }
}
</script>

/mvh
Avatar billede natsprinter Nybegynder
19. november 2003 - 00:53 #9
Tusind tak - du er da vist et jern ud i programmering - !!!!!
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