Xantix Skrevet 7. mai 2006 Del Skrevet 7. mai 2006 Dette er "pageA.html" med følgende kode i seg: <html> <head> <title> HTML TUTORIAL </title> </head> <body> <form name = "myform" action = "pageB.html"> Navn: <input type = "text" name = "navn" value = "Tast inn et navn"> </input> <br> <input type = "submit"> </input> <input type = "reset" name = slett value = "Slett info"> </input> </form> </body> </html> Som gir en side hvor jeg kan skrive noe og sende det videre til en annen webside. Jeg prøver da å få tak i verdien til "navn" fra pageB.html uten videre hell. Bruker da følgende kode fra pageB.html <html> <head> <title> HTML TUTORIAL </title> </head> <body> <script language = javascript> test = myform.navn.value document.write("Dette er script fila som svarer: "+test) </script> </body> </html> Er helt grønn i javascript og bare driver og leker meg ved å lese tutorials på nett. Lenke til kommentar
gnab Skrevet 28. mai 2006 Del Skrevet 28. mai 2006 (endret) Akkurat det å sende verdier fra en nettside og hente de ut igjen i en annen er noe man vanligvis ikke bruker Javascript til, men heller PHP eller andre skriptspråk som kjører på tjenersiden. Det betyr imidlertid ikke at det ikke er mulig, men det er litt mer klumpete bare. Det som skjer når innholdet i formen/skjemaet ditt sendes er at alle variabler legges på URLen som "pageB.html" kalles opp med. Så dersom du f. eks. har: <input type = "text" name = "navn" /> <input type = "text" name = "alder" /> og du skriver inn "Bob Leif" i navne-feltet og "51" i alder-feltet, så blir URLen: .../pageB.html?navn=Bob%20Leif&alder=51 Etter selve filnavnet legges det til et spørsmålstegn, og så kommer alle variablene dine på formen "variabelnavn=variabelverdi", delt av "&"-tegn. I tillegg enkoder nettleseren spesielle tegn, slik at mellomrom i dette tilfellet blir %20. Når så denne URLen kalles opp, må disse variablene hentes inn. Hvis du vet at det kommer til å være et gitt antall variabler der og rekkefølgen disse kommer til å stå i, kan du skrive en kode som bruker denne informasjonen og derved kan bli nokså kort og grei, men det er likevel en del ting som må gjøres. For å gjøre det hele litt mer interessant har jeg skrevet en funksjon som henter inn alle variabler som finnes i URLen og returnerer en liste over alle variabelnavn og -verdier. Denne kan brukes generelt, altså uten av man vet noe spesielt om hvor mange variabler som evt. finnes, navnene på disse eller rekkefølgen de står i. function parseVariables() { // Lag variabel-liste som skal returneres var variables = new Array(); // Hent URLen siden ble kalt opp med var url = new String(window.location); // Sjekk om URLen inneholder ?-tegn if (url.indexOf('?') != -1) { // Hent ut delen av URLen etter ?-tegnet url = url.split('?')[1]; // Hent ut alle delene fra URLen delt av &-tegn var parts = url.split('&'); // Gå gjennom alle delene funnet for (var i = 0; i < parts.length; i++) { // Hent ut gjeldende del var part = parts[i]; // Hent ut variabelnavn og -verdi delt av =-tegn var data = part.split('='); // Anta at det ikke finnes noen verdi, og sett denne tom var value = ""; // Sjekk om det finnes verdi if (data.length == 2) { // Hent verdi value = data[1]; // Dekod verdi value = unescape(value.replace(/\+/g, " ")); } // Hent navn var name = data[0]; // Dekod navn name = unescape(name.replace(/\+/g, " ")); // Lagre navn og verdi i variabel-listen variables[name] = value; } } // Returner variabel-liste return variables; } var variabler = parseVariables(); alert("Navn: " + variabler["navn"] + ", alder: " + variabler["alder"]); Det funksjonen gjør er kort sagt følgende: Finner URLen til siden (som da inneholder filnavnet og alle variablene) Henter ut biten etter spørsmålstegnet (som er variablene) Deler opp i enkeltvariabler (ved å splitte opp hver gang et "&"-tegn forekommer) Deler opp i variabelnavn og -verdi for hver av variablene (ved å splitte opp ved likhetstegnet) Dekoder variabelnavn og -verdi (endrer %20 tilbake til mellomrom o.l.) Og ut får du en liste som kan brukes som vist i de to siste linjene i koden over. Ved å skrive variabler["NAVN_PÅ_VARIABEL_HER"] får du ut dens verdi. Hvis ikke en variabel med navnet du oppgir finnes, vil du få "undefined". Hvis du limer all koden over inn mellom <script>..</script> i "pageB.html" får du se det hele in action. Registrerte at du skriver at du er helt grønn i Javascript, og i så måte er kanskje ikke dette det første problemet du bør satse livet på å klare. Men du har i alle fall litt kode å tygge på. Endret 28. mai 2006 av gnab Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå