Avatar billede getalife Nybegynder
03. februar 2001 - 15:53 Der er 13 kommentarer og
3 løsninger

Hent variabel fra url

Hej

Nogen der kan fortælle mig hvordan jeg henter en variabel fra en url?
Feks.:
/index.asp?program=antivirus

På forhånd tak.

/Getalife
Avatar billede emileej Nybegynder
03. februar 2001 - 15:59 #1
function getValues(){
    var urlEnd = document.URL.indexOf(\'?\');
    var values = new Array();
    var names;

    if (urlEnd != -1){
        var params = document.URL.substring(urlEnd+1, document.URL.length).split(\'&\');
        for(i=0; i<params.length; i++) {
            names = params[i].split(\'=\');
            values[names[0]] = names[1];
        }
    }
    return values;
}
values = getValues();
Avatar billede getalife Nybegynder
03. februar 2001 - 16:11 #2
Hmm.. det virker desværre ikke.

Er der ikke en ting noget lign.
liste = Request(\"program\") i VB?
Avatar billede getalife Nybegynder
03. februar 2001 - 16:15 #3
Mit script ser således ud som det er nu.
Var\'en liste skal afhænge af føromtalte URL.
Der skal være mulighed for at jeg kan have flere var\'s i min url uden det må påvirke scriptet.

<html>
<body>
<script language=\"javascript\">

var sti = \"xml/\";
var liste = \"antivirus\";

// Load XML
var xml = new ActiveXObject(\"Microsoft.XMLDOM\")
xml.async = false
xml.load(sti + liste + \".xml\")

// Load the XSL
var xsl = new ActiveXObject(\"Microsoft.XMLDOM\")
xsl.async = false
xsl.load(\"menu.xsl\")

// Transform
document.write(xml.transformNode(xsl))
</script>

</body>
</html>
Avatar billede olebole Juniormester
03. februar 2001 - 16:19 #4
<ole>
Iøvrigt returnerer location.search \'?blablabla\', hvis URL\'en er \'et_dokument.html?blablabla\'
/mvh
</bole>
Avatar billede jakoba Nybegynder
03. februar 2001 - 16:39 #5
Du kan kikke på koden her og se hvordan:
  http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp32917.html
Avatar billede geeeet Nybegynder
03. februar 2001 - 17:09 #6
Jakoba >> For at fortsætte som sidst, smider jeg også lige url\'en igen...

http://www.ghtml.com/pickpocket/getvalues.php?author=geeeet&content=ghtml

/Geeeet
Avatar billede jakoba Nybegynder
03. februar 2001 - 17:22 #7
Geeeet >> ... som sidst ?  Jeg mindes ikke vi er ramlet sammen før, men ja, helt klart samme svar. sorry :-))
Avatar billede getalife Nybegynder
03. februar 2001 - 17:32 #8
Uhm.. er vi enige om at mit dokument nu ser således ud:
<html>
<head>

<script language=\"javascript\">
    // This function extracts the values from the url
    function getValues(){
        var urlEnd = document.URL.indexOf(\'?\');
        var values = new Array();
        var names;
   
        if (urlEnd != -1){
            var params = document.URL.substring(urlEnd+1, document.URL.length).split(\'&\');
            for(i=0; i<params.length; i++) {
                names = params[i].split(\'=\');
                values[names[0]] = names[1];
            }
        }
        return values;
    }
    values = getValues();
</script>
</head>
<body>
<script language=\"javascript\">

var sti = \"xml/\";
var liste = \"antivirus\";


// Load XML
var xml = new ActiveXObject(\"Microsoft.XMLDOM\")
xml.async = false
xml.load(sti + liste + \".xml\")

// Load the XSL
var xsl = new ActiveXObject(\"Microsoft.XMLDOM\")
xsl.async = false
xsl.load(\"menu.xsl\")

// Transform
document.write(xml.transformNode(xsl))
</script>

</body>
</html>

Når jeg kører det får jeg en fin blank side.
Avatar billede jakoba Nybegynder
03. februar 2001 - 17:41 #9
parameterværdierne for dine url-parametre bliver lagt i et array der hedder values.
Jeg kan ikke se noget sted du henter dem ud af det array.
Avatar billede getalife Nybegynder
03. februar 2001 - 17:47 #10
I know.. men nu tager jeg een ting af gangen :o)
Desuden burde det vel ikke være en ting jeg ikke gjorde der var problemet.
Avatar billede olebole Juniormester
03. februar 2001 - 17:56 #11
Jo...du har ikke lavet noget indhold i \'liste\' - det skal du jo bruge værdierne i \'values\' til.
Hvis du får en blank side, fungerer alt fuldstændig efter planen :))
/mvh
Avatar billede getalife Nybegynder
03. februar 2001 - 18:01 #12
Uhm, nej.. for jeg loader en XSL og XML side nederst i scriptet og den viser den heller ikke
Avatar billede olebole Juniormester
03. februar 2001 - 18:07 #13
ehhhhhhh....hvem var det, der ville tage een ting ad gangen? :))
Find nu ud af, om du har noget liggende i \'values\' og find så ud af at få lagt det ned i \'liste\'. Så kan du altid checke, om du fifler rigtigt rundt med dit XSL og XML bagefter. Det er ikke jakobas script, der ikke fungerer :)
/mvh
Avatar billede getalife Nybegynder
03. februar 2001 - 18:12 #14
Hehe.. well.. det var det jeg startede ud med :o)

Nå.. jeg har fjernet alt fra body og skrevet nisse i stedet.. intet.
Avatar billede jakoba Nybegynder
03. februar 2001 - 18:44 #15
olebole >> det er geeeet\'s script han bruger, men det fungerer også.

getalife >> en god hurtig debugger jeg ofte bruger er:

var debugOn = true;
function debug ( str ) {
  if ( debugOn ) debugOn = confirm( str );
};

så kan du indsætte testpunkter i din script med fx:

debug( \"values.length, values[\'program\'] = \" +values.length+\", \"+values[\'program\'] );
Avatar billede getalife Nybegynder
04. februar 2001 - 00:51 #16
Hehe.. yupyup.. fandt ud af problemet.. et typisk tilfælde af en blanding af fejl 40 og \"fååårk fååårk, der skal ske en masse!!\"

Problemet var at jeg includede siden menu.html i mit xsl script. Xsl parseren kunne åbenbart ikke lide noget af javascriptet og spytter en blank side ud.
Kører jeg menu.html for sig selv er der ingen problemer (efter lidt tilretning).

Problemet er nu.. at jeg ikke kan bruge scriptet til en hujende fis, da xsl\'en ikke kan lide det.
Well.. det er vist på tide at finde på en anden løsning.. *suk*
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