Avatar billede anderskristensen Nybegynder
18. februar 2007 - 21:54 Der er 9 kommentarer og
1 løsning

passere variabel fra side1 til side2

på side1 har jeg en funktion der ved kørsel laver to variabler og sender brugeren videre til side2:

function spil(picset){
var path = picset;
var randomnr = Math.floor((Math.random()*10)+1);
window.location = "side2.html";
}

Hvordan kan jeg sende de to variabler med til side2, således at jeg kan skrive dem, med noget i retning af:

document.write(path);
document.write(randomnr);
Avatar billede thesurfer Nybegynder
18. februar 2007 - 21:57 #1
window.location = "side2.html?path=" + path + "&randomnr=" & randomnr;

Så skal du bare aflæse dem via window.location.search..
Avatar billede anderskristensen Nybegynder
18. februar 2007 - 22:04 #2
dvs:
function spil(picset){
var path = picset;
var randomnr = Math.floor((Math.random()*10)+1);
window.location = "side2.html?path=" + path + "&randomnr=" & randomnr;
}

hvordan aflæser man dem med
window.location.search
er lidt ny til det stadig
Avatar billede thesurfer Nybegynder
18. februar 2007 - 22:08 #3
Eksempel:

function find(StringToFind)
{
qs = "" + window.location.search;
qs = qs.replace("?", "&");
qslist = qs.split("&");

for(i = 0, len = qslist.length; i < len; i++)
{
    tmp = qslist[i];
    par = tmp.substring(0,tmp.indexOf("="));
    val = tmp.substring(tmp.indexOf("=")+1);
    if (par == StringToFind) return val;
}
return "null";
}

document.write( find('path') );
document.write( find('randomnr') );
Avatar billede thesurfer Nybegynder
18. februar 2007 - 22:11 #4
Funktionen kan du f.eks. inkludere via ekstern .js fil.. men det behøver du ikke..

Et andet eksempel på hvordan det kan bruges:

side2.html?fornavn=hans&efternavn=hansen

document.write("Fornavn: " + find("fornavn") + "<br>Efternavn: " + find("efternavn"));

Det vil udskrive:

Fornavn: Hans
Efternavn: Hansen
Avatar billede thesurfer Nybegynder
18. februar 2007 - 22:12 #5
Hvis du f.eks. bruger:

side2.html?fornavn=hans&efternavn=hansen

Og bruger:

document.write("Hej " + find("noget-der-ikke-eksisterer"));

vil den skrive:

Hej null
Avatar billede thesurfer Nybegynder
18. februar 2007 - 22:13 #6
Funktionen kan sikkert godt optimeres..
Jeg ved ikke hvad der er bedste.. at bruge substring til "parameter=værdi" eller direkte at splitte det ved "="..

Begge ting virker.

- Her er et svar
Avatar billede thesurfer Nybegynder
18. februar 2007 - 22:15 #7
Man kunne også bruge substring på urlen, og tage den derfra.. :-)

Eksempel:

par = qs.substring(qs.indexOf(StringToFind) + 1)
if (par.indexOf("&") > -1) par = par.substring(0, par.indexOf("&"));

Men det er smag og behag.. :-)
Avatar billede thesurfer Nybegynder
18. februar 2007 - 22:18 #8
Rettelse til foregående indlæg:

function find(StringToFind)
{
qs = "" + window.location.search;
par = qs.substring(qs.indexOf(StringToFind) + StringToFind.length + 1)
if (par.indexOf("&") > -1) par = par.substring(0, par.indexOf("&"));
return par;
}

Men så går det galt, hvis man prøver på at hente en parameter ud, der ikke allerede findes i urlen..
Avatar billede anderskristensen Nybegynder
18. februar 2007 - 22:30 #9
det virker udemærket. tak for hurtigt svar
Avatar billede thesurfer Nybegynder
18. februar 2007 - 22:38 #10
Det var så lidt :-)
God aften.
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