Gå til innhold

Hvordan sende form verdier fra webpage1 til wp2?


Anbefalte innlegg

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
  • 3 uker senere...
Videoannonse
Annonse

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:

  1. Finner URLen til siden (som da inneholder filnavnet og alle variablene)
  2. Henter ut biten etter spørsmålstegnet (som er variablene)
  3. Deler opp i enkeltvariabler (ved å splitte opp hver gang et "&"-tegn forekommer)
  4. Deler opp i variabelnavn og -verdi for hver av variablene (ved å splitte opp ved likhetstegnet)
  5. 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 av gnab
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...