Avatar billede boris Mester
10. august 2008 - 23:31 Der er 5 kommentarer og
1 løsning

minvariabel = minvariabel

Kan man gøre det i javascript?:

1)
Jeg har en række forskellige variabler at vælge imellem.

2)
Fra en querystring får jeg returneret navnet på en af variablerne

3)
Det jeg skal bruge er selve den variabel, som querystringen giver navnet på.

Altså kan ved hjælp af navnet på en variabel hente selve variablen?

Håber, at det er tydeligt nok.
Avatar billede olebole Juniormester
10. august 2008 - 23:54 #1
<ole>

Mener du noget i stil med:

var minVar = "noget";
var sVarNavn = "minVar";

alert( window[sVarNavn] ); // Returnerer 'noget'

/mvh
</bole>
Avatar billede olebole Juniormester
10. august 2008 - 23:56 #2
- og da JS ikke tilbyder nogen direkte måde at tilgå variabler i query-strenge, må vi selv parse query'en. Hvordan ser den ud?
Avatar billede olebole Juniormester
11. august 2008 - 00:40 #3
Hvis variabelnavnet ligger i query-variablen 'foo', kunne du prøve:

function getVar(sKey) {
    if (!location.search) return undefined;
    var oRX = new RegExp("(?:\\?|&)"+sKey+"=(.*?)(?:&|$)", "i"),
    aM = oRX.test(location.search);
    return aM ? decodeURIComponent(RegExp.$1) : undefined;
}

var sVarName = getVar("foo");
alert( window[sVarName] );
Avatar billede olebole Juniormester
11. august 2008 - 00:46 #4
PS: Hvis foo ikke kan findes i query-strengen, vil getVar returnere undefined. Derfor bør du naturligvis teste på resultatet:

var sVarName = getVar("foo");
if (sVarName) {
    // Gør noget med variablen
    alert( window[sVarName] );
} else {
    // Red din mås!
}
Avatar billede boris Mester
11. august 2008 - 04:42 #5
Tak for hjælpen! Læg et svar.
Det var dit første svar, som hjalp mig fremad.
Tak også for de andre eksempler.
Jeg bruger denne funktion til querystring:
function gup( name ){ 
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
var regexS = "[\\?&]"+name+"=([^&#]*)"; 
var regex = new RegExp( regexS ); 
var results = regex.exec( window.location.href ); 
if( results == null )    return ""; 
else    return results[1];
}
Avatar billede boris Mester
05. marts 2011 - 03:09 #6
afsluttes
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